如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?
Posted IoT砖家涂拉拉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?相关的知识,希望对你有一定的参考价值。
昨天我介绍了什么是IoT App SDK,今天来教大家快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景,这就需要用到昨天 IoT App SDK 类别中的智能生活 App SDK 来实现。
智能生活 App SDK 应用场景
如果智能生活 App和 OEM App 无法满足定制化需求,或需要在已有的 App 上接入涂鸦赋能的设备,就可以使用涂鸦智能生活 App SDK。涂鸦智能生活 App SDK是专为智能家居 物联网移动 App 开发打造,同时封装了垂直品类 SDK、UI 业务包,为大家提供丰富的组件和示例代码。
准备工作
下面先来介绍下创建智能生活 App SDK 应用前的准备工作,并获取 SDK 的 AppKey、AppSecret、安全图片等信息。
1、登录涂鸦 IoT 开发平台账号注册页面,根据页面提示获取一个涂鸦智能开发者账号,并完成实名认证。
2、(可选)完成企业认证。账号注册完成后,进入涂鸦 IoT 开发平台首页,平台会提示选择账号类型。选择企业客户根据步骤完成认证即可。
操作步骤
1、登录到 涂鸦 IoT 开发平台 的 App SDK 页面。
2、在 SDK 开发 处,单击 创建 App。
3、根据页面提示,选择 App SDK类型 >> 智能生活 App SDK。
4、在 填写信息 页面,填写 SDK 对应的应用名称、包名、渠道标识符。
- 应用名称:填写您的 App 名称。
- ios 应用包名:填写您的 iOS App 包名(建议格式:com.xxxxx.xxxxx)。
- 安卓应用包名:填写您的安卓 App 包名(两者可以保持一致,也可以不一致)。
- 渠道标识符:不是必填项,如果不填写,系统会根据包名自动生成。
5、确认后,单击 确定。
6、在 获取 SDK 页面,勾选一款或多款您需要的 SDK 或者业务包,然后下载对应应用平台的集成资料包。
7、单击 获取密钥 页签,获取 SDK 的 AppKey、AppSecret、安全图片等信息。
8、如果是安卓端应用,请配置 SHA256 密钥。
快速集成
下面将介绍如何使用 CocoaPods 将涂鸦智能生活 App SDK iOS 版快速集成到项目中。SDK 要求 iOS 版本不低于 11.0。(如有想了解安卓版的可先登录涂鸦 IoT 开发平台体验)
集成 SDK
使用 CocoaPods 集成
-
更新 CocoaPods 至最新版本。
-
在
Podfile
文件中添加以下内容:
source 'https://github.com/tuya/tuya-pod-specs.git'
platform :ios, '11.0'
target 'Your_Project_Name' do
pod "TuyaSmartHomeKit"
end
-
在项目根目录下,执行
pod update
命令进行集成。
初始化 SDK
-
打开项目设置,Target > General,修改
Bundle Identifier
为涂鸦 IoT 开发平台对应的 iOS 包名。 -
导入安全图片到工程根目录,重命名为
t_s.bmp
,并加入 项目设置 > Target > Build Phases > Copy Bundle Resources 中。 -
在项目的
PrefixHeader.pch
文件添加以下内容。#import <TuyaSmartHomeKit/TuyaSmartKit.h>
Swift 项目可以在
xxx_Bridging-Header.h
桥接文件中添加以下内容。#import <TuyaSmartHomeKit/TuyaSmartKit.h>
-
打开
AppDelegate.m
文件,在[AppDelegate application:didFinishLaunchingWithOptions:]
方法中初始化 SDK。
配置 SDK
- (void)startWithAppKey:(NSString *)appKey secretKey:(NSString *)secretKey;
参数说明
参数 | 说明 |
---|---|
appKey | App key |
secretKey | App 密钥 key |
示例代码
Objc:
[[TuyaSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];
Swift:
TuyaSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
至此,准备工作已经全部完毕。
打开 Debug 模式
在开发的过程中可以开启 Debug 模式,打印日志用于分析问题。
Objc:
#ifdef DEBUG
[[TuyaSmartSDK sharedInstance] setDebugMode:YES];
#else
#endif
Swift:
#if DEBUG
TuyaSmartSDK.sharedInstance()?.debugMode = true
#else
#endif
语言设置
接口返回的错误信息与文案等,将会根据工程所支持的多语言和用户手机的当前语言来显示。如果想要支持某种语言,可以在工程中的 Localization 中添加想要支持的语言。
演示工程主要介绍了 SDK 开发流程,以及一些简单的业务逻辑。在开发 App 之前,建议先按照本文完成演示工程的操作。
配置 Widget 工程
-
Widget 创建步骤
-
修改 Podfile
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO' end end end
-
AppGroups
- 开启 AppGroups 权限
- 在 SDK 初始化前,给 SDK 设置 AppGroups Name
- 因为 AppGroups 只有付费开发者账号才能创建权限,所以免费开发者账号不能调试 Widget 应用
-
配置安全图片和用 AppKey、AppSecret 初始化 SDK
-
在用 AppKey 初始化 SDK 前设置 AppGroupName
[TuyaSmartSDK sharedInstance].appGroupId = APP_GROUP_NAME; [[TuyaSmartSDK sharedInstance] startWithAppKey:SDK_APPKEY secretKey:SDK_APPSECRET];
使用 SDK
- 在主工程中设置当前
homeId
。 - 使用
TuyaSmartDeviceModel.switchDp
判断设备是否支持快捷开关。 - 需要在
viewWillAppear
中判断是否在主工程中切换了账号和房间,如果切换了需要刷新数据。
Demo App
准备 Demo
在准备工作阶段,我们就已获取 iOS 版本 SDK 的 AppKey
、 AppSecret
、安全图片。
集成 SDK 时请确认 BundleId
、AppKey
、AppSecret
、安全图片是否与涂鸦 IoT 平台上的信息一致,任意一个不匹配会导致 SDK 无法使用。
Demo 概述
演示工程提供了 Swift 与 Objective-C 的版本,请访问 Swift 示例 与 Objective-C 示例 获取演示工程。工程主要包括了以下功能:
-
用户账号注册及登录
-
用户信息管理
-
家庭管理
-
Wi-Fi 快连和热点模式配网
-
设备控制
常见问题
-
问题现象:API 请求提示以下签名错误。
"success" : false, "errorCode" : "SING_VALIDATE_FALED", "status" : "error", "errorMsg" : "Permission Verification Failed", "t" : 1583208740059
- 解决办法:确认 BundleId、AppKey、AppSecret、安全图片是否与 涂鸦 IoT 开发平台 上的信息一致,任意一个不匹配都将校验失败。具体请按照准备工作来进行检查。
智能生活App SDK 集成完成后,准备一个涂鸦赋能的智能产品,注册创建账号,再进行设备配网和设备控制等接入步骤,即可创建一个自己的 App,并通过它进行用户账号注册、家庭创建、家庭查询、设备配网、设备控制等。具体教程可关注我,也可自行去学习了解 👇 点击登录涂鸦 IoT 开发平台。
以上是关于如何快速实现移动 App 对智能设备的连接和控制,打造丰富的智能生活场景?的主要内容,如果未能解决你的问题,请参考以下文章
如何实现,基于 PaaS 平台 OpenAPI & App SDK的照明系统开发?附代码段讲解
如何实现,基于 PaaS 平台 OpenAPI & App SDK的照明系统开发?附代码段讲解