2-机智云应用开发介绍与操作

一、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】更多应用开发。

你可能感兴趣的:(2-机智云应用开发介绍与操作)