一、App开发准备工作及向导
1、机智云APP开发资源简述
机智云现提供三种APP(集成SDK、使用app开源框架、使用app自动生成)的开发方式。
【a】机智云设备接入SDK
iOS平台原生SDK下载地址:https://download.gizwits.com/zh-cn/p/95/97
iOS平台原生SDK集成指南:http://docs.gizwits.com/zh-cn/AppDev/iOSSDKA2.html
【b】机智云App开源框架
iOS开源框架使用说明:http://docs.gizwits.com/zh-cn/AppDev/iosframe.html
iOS开源框架的快速开发实例:http://docs.gizwits.com/zh-cn/quickstart/iOSAPPFrame.html
【c】机智云App自动生成服务
APP自动生成代码服务介绍以及使用教程:http://docs.gizwits.com/zh-cn/UserManual/devApp.html
【d】App其它开发教程
IOS消息推送指南:http://docs.gizwits.com/zh-cn/AppDev/iOS%E6%B6%88%E6%81%AF%E6%8E%A8%E9%80%81.html
IOS第三方登陆与换肤教程:http://docs.gizwits.com/zh-cn/AppDev/iOS%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E9%99%86%E4%B8%8E%E6%8D%A2%E8%82%A4.html
2、准备创建工作
【a】创建产品并定义数据点
【b】为产品创建iOS和Android应用
【c】App ID与App Secret含义与作用
二、APP代码自动生成服务介绍
1、概述
为了降低开发智能硬件APP开发门槛,降低开发资源的投入,机智云在《APP开源框架》基础上进一步推出了实现项目完整控制功能的APP开源代码。当开发者在产品项目上创建对应的数据点后,云端会根据产品定义的数据点生成对应产品的APP参考代码。
2、工具使用指南
【a】创建应用
应用配置 —> 添加新应用 —> 创建iOS和Android应用
【b】生成代码
复制Product Key —> 复制Product Secret —> 等待生成代码包 —> 下载源码 —> 解压源码并查看源码说明
三、App 开源框架
三|一、开源框架简介:
1、App模板主要功能:
SDK的加载、初始化、用户注册、用户登录、设备配置、设备发现、设备连接、设备列表。
2、iOS开源框架工程源码链接:
https://git.oschina.net/dantang/GizOpenSource_AppKit_iOS
3、iOS开源套件工程源码链接:
https://git.oschina.net/dantang/GoKit_Demo_iOS
三|二、开源框架目录结构:
1、Library(库模块):
包括 GizWifiSDK 在内的的第三方库目录
2、GOpenSourceModules(组成模块):
CommonModule: 公共方法类、资源文件 及 自定义 Cell
ConfigModule: 设备配置模块,包含 AirLink 及 SoftAP
UserModule: 用户模块,包含 用户登录、用户注册、找回密码
DeviceModule: 设备模块,包含 设备列表
SettingsModule: 设置模块,包含 设置菜单 及其 包含的子菜单项(关于等)
PushModule: 推送模块,包含 百度和极光的推送SDK 集成封装
三|三、快速集成(使用指南):
1、设定初始化参数
app_id:机智云 app id
app_secret:机智云 app secret
product_key:机智云 product key
wifi_type_select:默认配置模块wifi模组选择功能是否开启
tencent_app_id:qq登录 app id
wechat_app_id:微信登录 app id
wechat_app_secret:微信登录 app secret
push_type:推送类型 【0:关闭,1:极光,2:百度】
jpush_app_key:极光推送 app key
bpush_app_key:百度推送 app key
openAPIDomain:openAPI 域名及端口,格式:“api.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
siteDomain:site 域名及端口,格式:“site.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
pushDomain:推送绑定服务器 域名及端口,格式:“push.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
buttonColor:按钮颜色
buttonTextColor:按钮文字颜色
navigationBarColor:导航栏颜色
navigationBarTextColor:导航栏文字颜色
configProgressViewColor:配置中界面 progress view 颜色
statusBarStyle:状态文字栏颜色 【0:黑色,1:白色】
addDeviceTitle:添加设备界面 导航栏标题文字
qq:是否打开QQ登录【true:打开】
wechat:是否打开微信登录【true:打开】
anonymousLogin:是否打开匿名登录【true:打开】
2、加载控制界面
【a】遵守GizWifiDeviceDelegate委托的代理协议
【b】self.device.delegate = self;//设置代理
【c】- (void)device:(GizWifiDevice *)device didReceiveData:(NSError *)result data:(NSDictionary *)data withSN:(NSNumber *)sn;//应答指令接收数据
【d】- (void)write:(NSDictionary *)data withSN:(int)sn;//下发指令发送数据
【e】- (void)setSubscribe:(BOOL)subscribed;//取消当前设备订阅
3、设置界面增加菜单项及点击处理
三|四、集成极光推送:
1、申请极光AppKey与Master Secret
【a】打开网站链接,创建极光应用
https://www.jiguang.cn/
【b】打开网站链接,申请苹果推送证书, 并导出成P12文件
https://developer.apple.com/
【c】导入证书到极光
2、在云端绑定第三方推送
【a】申请开通D3 Engine
【b】云端绑定极光推送
【c】利用D3 Engine创建推送规则
3、修改UIConfig.json代码
填写jpush_app_key,以及将push_type设为1,表示选择极光推送,并且填写绑定了该极光应用的机智云应用于app_id、app_secret、product_key的值中。
4、Xcode配置推送
【a】Product —> Targets —> Capabilities —> Push Notifications
【b】.entitlements文件 —> 设置值为development时推送只在开发环境生效,distribution时推送只在生产环境生效。
5、启动虚拟设备
6、部署APP运行
7、测试推送功能
8、极光自定义推送声音
【a】设置推送声音
【b】添加推送声音文件到项目
三|五、集成百度推送:
1、申请百度API KEY
【a】打开网站链接,创建百度应用
http://push.baidu.com/
【b】打开网站链接,申请苹果推送证书, 并导出成P12文件
https://developer.apple.com/
【c】导入证书到百度推送
2、在云端绑定第三方登陆
【a】申请开通D3 Engine
【b】云端绑定百度推送
【c】利用D3 Engine创建推送规则
3、修改UIConfig.json代码
填写jpush_app_key,以及将push_type设为2,表示选择百度推送,并且填写绑定了该百度应用的机智云应用于app_id、app_secret、product_key的值中。
4、修改百度推送的启动接口
百度推送的启动接口有一个pushMode参数,分别有两个值BPushModeDevelopment(开发环境) 和 BPushModeProduction(部署环境)。
5、启动虚拟设备
6、部署APP运行
7、测试推送功能
8、百度自定义推送声音
【a】设置推送声音
【b】添加推送声音文件到项目
三|六、消息推送常见问题:
1、开发者一定要开通D3 Engine才能使用消息推送。
2、使用极光推送按照以上步骤完成代码修改,但是却无法收到推送消息。
3、极光推送如何设置角标的值。
三|七、集成QQ第三方登录:
1、获取App ID并绑定应用。
打开腾讯开放平台网站链接,创建应用获取App ID
http://open.qq.com/
2、开源框架配置。
【a】配置腾讯APP ID
【b】配置URL Schemes
三|八、集成微信第三方登录:
1、获取APPID和APPSecret。
打开微信开放平台网站链接,创建应用获取App ID
https://open.weixin.qq.com/
2、开源框架配置。
【a】配置微信APP ID
【b】配置URL Schemes
三|九、App快速换肤:
1、开源框架已集成了皮肤定制功能。通过修改UIConfig.json文件即可实现快速换肤。
2、自定义皮肤代码修改区,各含义如下:
buttonColor:按钮颜色
buttonTextColor:按钮文字颜色
navigationBarColor:导航栏颜色
navigationBarTextColor:导航栏文字颜色
configProgressViewColor:配置中界面 progress view 颜色
statusBarStyle:状态栏颜色
三|十、App快速开发部署步骤:
1、打开网站链接,下载iOS APP开源框架
https://git.oschina.net/dantang/GizOpenSource_AppKit_iOS
2、导入工程到XCode
3、开源框架包结构说明
【a】Library(库模块):第三方框架和机智云SDK
【b】GOpenSourceModules(组成模块):开源框架和资源
【c】GOpenSourceAppkit(工程模块):主要工程
【d】Products(ipa包模块):ipa
4、修改UIConfig.json文件
app_id:机智云 app id
app_secret:机智云 app secret
product_key:机智云 product key
wifi_type_select:默认配置模块wifi模组选择功能是否开启
tencent_app_id:qq登录 app id
wechat_app_id:微信登录 app id
wechat_app_secret:微信登录 app secret
push_type:推送类型 【0:关闭,1:极光,2:百度】
jpush_app_key:极光推送 app key
bpush_app_key:百度推送 app key
openAPIDomain:openAPI 域名及端口,格式:“api.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
siteDomain:site 域名及端口,格式:“site.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
pushDomain:推送绑定服务器 域名及端口,格式:“push.gizwits.com”。要指定端口,格式为:”xxx.xxxxxxx.com:81&8443”
buttonColor:按钮颜色
buttonTextColor:按钮文字颜色
navigationBarColor:导航栏颜色
navigationBarTextColor:导航栏文字颜色
configProgressViewColor:配置中界面 progress view 颜色
statusBarStyle:状态文字栏颜色 【0:黑色,1:白色】
addDeviceTitle:添加设备界面 导航栏标题文字
qq:是否打开QQ登录【true:打开】
wechat:是否打开微信登录【true:打开】
anonymousLogin:是否打开匿名登录【true:打开】
5、控制界面入口
【a】初始化自定义的控制界面
【b】从deviceListController(设备列表界面)跳转到自定义控制界面
6、APP部署运行
正确填写Product Key、App ID与App Secret后,工程就可以部署运行了。
7、注册新用户
8、登陆用户
9、启动虚拟设备并显示二维码
10、扫描绑定设备
11、点击“智能灯”,进入控制界面
三|十一、App控制页面快速设计步骤:
1、控制页面代码预览
2、页面UI设计
3、页面布局代码开发
【a】导入图片文件
【b】添加Button控件
4、控制逻辑代码开发
【a】定义数据点宏
【b】实现控制逻辑,有三个步骤:
《*1》指定设备的代理
《*2》遵守设备协议
《*3》下发控制指令
【c】实际接收数据逻辑
【d】解除订阅
【e】部署测试
《*1》下发命令
《*2》设备主动上报数据
四、App 开发 SDK 接入
四|一、设备接入SDK概述:
1、SDK目的与功能:
配置入网、发现、连接、控制、心跳、状态上报、报警通知等。
2、机智云物联方案概况:
云(clound) —》 手机客户端(app) —》 设备(device)
3、找到最合适的SDK, iOS平台、Android平台、APICound平台(用H5技术实现跨平台)
4、相关名词定义:
【a】GAgent
【b】小循环
【c】大循环
【d】ProductKey(产品标识码)
【e】DID(设备号)
【f】PassCode(设备通行证)
【g】AppID(应用标识码)
【h】Onboarding(配置入网)
【I】AirLink(UDP广播报方式对设备配置入网的技术统称,兼容了多个Wi-Fi模块厂商的配置协议)
【j】SoftAP(设备接入路由器,当设备进入SoftAP配置模式时,设备本身将成为一个AP,智能手机可直接与设备进行连接)
5、集成准备:
【a】打开网址链接,注册机智云账号
http://www.gizwits.com/
【b】新设备接入
【c】获得App ID应用标识码和ProductKey产品标识码
【d】下载SDK
【e】导入SDK(注意: 区分动态库和静态库的导入方式)
【f】通过cocoapods库管理工具使用GizWifiSDK
四|二、SDK流程简介:
1、通用流程图:
初始化SDK —》初始化SDK —》用户部分处理 —》配置设备入网 —》发现与链接设备 —》控制设备
2、关键点说明:
【a】SDK已经封装了所有的用户、配置、发现、连接、控制的过程,开发者使用这些API可以完成上述流程中的功能开发,不需要再自行实现通讯协议。
【b】SDK采取回调的工作方式,所以必须设置必要的委托,比如通用委托和设备委托,具体请参见流程详解。SDK在主线程中给APP回调。
四|三、SDK流程详解:
1、初始化部分:
【a】初始化部分流程图:引用头文件 —》 设置SDK通用委托 —》 启动
【b】引用头文件
【c】设置SDK通用委托
【d】初始化SDK
2、用户部分(注册、登录、重置密码、修改个人信息)
【a】用户部分主要流程图:设置SDK通用委托 —》 用户注册 —》 用户登录
【b】用户注册:注册手机用户、注册普通用户、注册邮箱用户
【c】用户登录:实名登录、匿名登录、第三方账号登录
【d】重置密码:手机号重置密码、邮箱重置密码
【e】修改密码
【f】匿名用户转换:匿名用户转普通用户、匿名用户转手机用户
【g】修改用户信息:修改用户邮箱、修改用户手机号、 修改用户个人信息、同时修改邮箱和个人信息、同时修改手机号和个人信息
3、配置设备入网部分
【a】设备配置流程图:设置SDK通用委托 —》 AirLink —》 SoftAP
【b】AirLink配置
【c】SoftAP配置
4、设备发现和订阅部分
【a】设备发现和订阅流程图:设置SDK通用委托 —》发现设备 —》设置设备委托 —》订阅设备
【b】设备发现
【c】设置设备的委托
【d】设备订阅和绑定:设备订阅、非局域网设备绑定、设置设备绑定信息
【e】设备解绑
【f】获取硬件信息
5、设备控制部分
SDK通过字典键值对方式进行设备控制和状态接收。SDK接收到APP下发的指令字典后,对应解析为设备可识别的数据,发送给设备。反之,SDK收到设备回复或上报的数据后,对应解析为字典键值对上报给APP。
【a】设备控制流程图:设置设备委托 —》App控制设备 —》设备状态主动变化
【b】发送控制指令
【c】接收设备状态
【d】设备状态查询
6、设备定时任务
通过给设备设置定时任务,可以让设备在预定的日期和时间执行某些操作。这些操作可以在一个月内的某几天重复,也可以在一周内的某几天重复。定时任务可以先设定好,然后在任何时候开始执行或停止执行。定时任务创建时默认开启。
【a】流程图:设置定时任务委托 —》创建定时任务 —》更新定时任务列表
【b】创建定时任务:一次性,按周重复、按月重复
【c】获取定时任务列表
【d】修改定时任务
【e】删除定时任务
7、设备分享
用户绑定设备后,可以通过设备分享的方式让其他人使用设备。设备分享提供了更好的设备权限管理,在多用户使用同一个设备时提供了更安全、更便捷的设备绑定方式。设备绑定权限分为四种:
Owner:设备的主账号,可以分享设备;
Guest:设备的分享账号,可以接受分享邀请,不能再分享设备给其他人;
Special:最早绑定设备但还未分享设备的账号,分享设备后即成为设备的主账号;
Normal:其他已绑定了设备的账号,不能分享设备,也不能成为设备的主账号;
【a】流程图:设置设备分享委托 —》分享设备 —》查询分享邀请 —》可解绑其他用户
【b】创建设备分享邀请: 账号分享,二维码分享
【c】接受分享邀请:接受账号分享邀请
五、更多App开发指南
五|一、SDK数据透传方法解析:
1、概述
两种数据透传方式:利用“扩展类型”数据点进行透传和利用不定义数据点直接进行数据透传,即纯透传。
2、扩展类型数据
【a】定义数据点
【b】设备上报数据协议说明
【c】SDK回调接口说明
【d】APP接收数据代码示例
【e】设备上报数据案例
【f】APP下发数据代码示例
3、无数据点透传
【a】设备上报数据协议说明
【b】SDK回调接口说明
【c】APP接收数据代码示例
【d】APP下发数据代码示例
五|二、开源框架视频教程:
1、教程概述
2、开源框架教程1-1 https://v.qq.com/x/page/p0344jspddv.html
3、开源框架教程1-2 https://v.qq.com/x/page/b0350blmgcf.html
六、微信开发
六|一、了解微信应用开发:
1、开发流程
【a】概述
【b】总体接入流程图
【c】机智云
【d】厂商服务器
【e】微信服务器
【f】微信客户端
2、了解微信
3、FAQ
【a】机智云Web Socket API服务是什么?
【b】WEB socket协议与HTTP有什么区别?
【c】如果未成功绑定设备,是否可以调用web socket api提供的控制设备指令?
【d】在使用设备控制api与服务端通讯,采用什么编码?
【e】设备控制api协议中的参数详细描述有吗
【f】Web socket api提供SSL的通讯支持吗?
七、相关重要提示:
1、支持的iOS8 App版本号, 修改界面的版本号需要到设置模块(SettingsModule)的关于界面(GosAboutViewController)的viewDidLoad 方法中修改属性appVersionLabel的赋值。
2、重要提示
【a】查阅《APP代码自动生成服务介绍》,可了解自动生成的APP代码模块具备哪些功能。
【b】查阅《APP开源框架》,可了解iOS开源框架使用指南。
【c】查阅《APP开发SDK》,可随心开发IoT APP(很多细节设计,均可在里面找到应用案例)。
【d】更多应用开发。