本帖最后由 Genius 于 2016-9-29 14:51 编辑
如果,你想快速开发机智云开源的APP,那你必看此文。授人以鱼不如授人以渔,我们教你的是一种方法论、以及APP的框架指导。所以,学习此文的小伙伴,也需具备一定的基础。
原文地址:http://docs.gizwits.com/hc/kb/article/181715/
机智云开源APP地址:http://club.gizwits.com/thread-2852-1-1.html
1. 简介 机智云APP开源框架是使用机智云SDK开发的APP模板,实现了SDK的加载、初始化、用户注册、用户登陆、设备配置、设备发现、设备连接、设备列表等基本的功能。APP开源框架是一个可以编译的源码工程,对所有开发者开源,目前提供iOS和Android版本。APP开发者可以在框架上实现具体产品的控制页面就可以生成一个完整的APP。 本文档为机智云物联网开源基础App套件使用说明,旨在为机智云物联网开发者提供一个快速开发模板,可在此工程基础上进行快速开发或参考相关代码进行开发。 iOS开源框架工程源码链接: iOS gokit App是使用开源框架工程的源码范例,源码链接:
也可在下载中心下载:
2. APP开源框架的目录结构说明A. Library: 包括 GizWifiSDK 在内的的第三方库目录B. GizOpenSourceModules: 组成模块1. CommonModule: 公共方法类、资源文件 及 自定义 Cell 2. ConfigModule: 设备配置模块,包含 AirLink 及 SoftAP 3. UserModule: 用户模块,包含 用户登录、用户注册、找回密码 4. DeviceModule: 设备模块,包含 设备列表 5. SettingsModule: 设置模块,包含 设置菜单 及其 包含的子菜单项(关于等) 6. PushModule: 推送模块,包含 百度和极光的推送SDK 集成封装 3. 快速集成指南默认程序入口在 UserModule 中的 LoginViewController。 A. 设定初始化参数(后续后优化成配置文件)在工程的 AppDelegate.h 文件中填写机智云AppID及AppSecret,如果使用第三方登录或推送,需要填写相应的从其他资源平台申请的参数;如果使用推送需要打开当前需要使用推送的类型的宏注释,如果都为注释状态则表示当前不使用第三方推送,同时只支持一种第三方推送,不可打开多个第三方推送宏定义的注释,如图所示: B. 加载控制界面1. 框架工程内提供的代码已经可以在不修改任何代码的前提下,进行到控制界面的跳转操作,开发者只需要关心操作界面的逻辑即可,如果需要在设备列表界面中点击某设备后,跳转到自己创建的控制器视图中,请在 AppDelegate.m 文件中修改相应跳转参数,如图所示,需要修改引入的头文件及跳转视图的类定义,如果使用默认提供的空白界面(GosDeviceController)来进行编写控制界面,可略过此步骤。 2. 在控制界面中设置 GizWifiDeviceDelegate 委托的代理,例如: self.device.delegate = self; 3. 在控制界面中定义类的委托回调,实现 SDK的GizWifiDeviceDelegate 委托的方法: - (void)deviceGizWifiDevice *)device didReceiveDataNSError *)result dataNSDictionary *)data withSNNSNumber *)sn; 用于接收SDK上报的设备状态变化通知,将接收到的上报数据解析并更新界面。 4. 实现控制命令下发,需要调用SDK中GizWifiDevice类实例的接口方法: - (void)writeNSDictionary *)data withSNint)sn; 具体参数解释,请参考SDK使用文档。 5. 退出控制界面时,需要取消当前设备订阅,调用SDK中GizWifiDevice类实例的接口方法,将参数设为NO: - (void)setSubscribeBOOL)subscribed; C. 设置界面增加菜单项及点击处理如果需要在设置界面进行列表项的增加或修改,需要操作设置模块(SettingsModule)中的GosSettingsViewController类文件,在 .m 文件中找到 UITableView 的委托方法,进行修改。 4. 常见问题A. 支持iOS版本?目前支持iOS 7及更高版本系统。 B. 如何更改关于界面中的版本号?关于版本号由两部分构成,格式为:工程版本号.程序编译时间,其中程序版本号是在info里设置的版本号,程序编译时间为年份后两位、月、日,共6位组成。如果需要修改显示效果,需要到设置模块(SettingsModule)的关于界面(GosAboutViewController)的viewDidLoad 方法中修改属性appVersionLabel的赋值。
|