作者:麦豪小仙 | 来源:互联网 | 2023-01-06 09:55
本文由嵌入式企鹅圈原创团队成员Hunter_Zhu提供。基于H5进行跨平台应用开发是未来的趋势,其具有跨平台兼容、开发门槛低、运维难度低等优势。phonegap、Dcloud等平台已经实现了很多的应用
本文由嵌入式企鹅圈原创团队成员Hunter_Zhu提供。
基于H5进行跨平台应用开发是未来的趋势,其具有跨平台兼容、开发门槛低、运维难度低等优势。phonegap、Dcloud等平台已经实现了很多的应用案例。尽管当前各个平台在硬件接口和接口效率上仍有亟待解决的问题,但相信会得到快速的迭代解决。物联网应用一般要比传统应用要显得简单一点,因此使用跨平台开发达到原生体验是一个极好的路径。
机智云基于apicloud跨平台实现了接入和数据访问接口。本文对其进行介绍,但原理对所有跨平台开发均是适用的。
在”物联网APP开发利器之APICloud”一文中已经介绍了APICloud平台的使用和本地调试环境搭建,APICloud作为跨平台APP开发的工具实际是通过用一个通用接口来实现不同平台的功能。因为APICloud已经把通用接口到各个不同平台的接口对应做好了,所以APICloud就用一份WEB代码来跟各个平台的浏览器整合编译,并生成对应的平台安装包,例如安卓一个.apk,苹果一个.ipa,即开发者只需要进行H5开发即可。
本篇文章将讲解基于APCloud平台的机智云APP端开发的几个要点,帮助大家对机智云平台下这种开发模式有快速深刻的认识。
一、APICloud平台中添加gizWifiSDK模块
gizWifiSDK模块是机智云平台对APICloud功能的拓展,封装了应用对接云平台以及和设备交互的接口实现,使得开发者能够通过简单的API接口调用即能够完成相应的功能,例如:WiFi设备配网、设备绑定等功能。
在H5开发过程中,需要将模块进行导入并且完成初始化:
api是由APCloud提供的一个基础对象,对象中含有应用程序需要的一些基本方法和属性,比如窗口操作等一些函数,通过api对象中的require方法来完成对模块的加载,加载完成后通过gizwitsSDK.startWithAppID来完成SDK初始化。
二、在机智云平台中获取APPID
开发者需要在机智云平台中完成项目创建——》应用配置——》添加新应用,完成后即可获得相应的App ID以及App Secret,通过这些信息标注了一个应用,在接口调用中例如获取手机验证码时需要用到这些信息。
三、用户登陆、注册功能
这是APP开发中必备的基本功能,机智云提供三种登陆方式:实名登陆、匿名登陆以及第三方登陆三种方式,实名登陆的账号信息可以通过手机号、邮箱以及普通用户名进行注册,匿名登陆允许用户不进行账号注册一样可以发现设备和控制设备,匿名用户可以转换为手机用户或普通用户,第三方登陆支持百度、新浪、QQ进行登陆。
这里简单列举一下实名方式的几个接口:
1)获取手机验证码(用于注册或重置密码):
2)注册用户:
3)用户登陆:
用户完成登陆后返回的信息包含了用户uid以及登陆会话token,返回的这两个参数在设备功能接口中需要使用,例如:设备绑定等操作的接口。
四、设备的基本操作功能
完成登陆后,我们接下来的工作和微信H5开发类似——要完成的就是获取用户绑定的设备列表——》订阅监听设备的状态和事件——》进行设备读写操作。
1)获取绑定设备列表:
调用这个接口所获得结果根据手机的联网状态会分为几种:手机通过外网获取到的是用户已绑定的设备列表;手机在局域网内获取到的是用户已绑定的设备以及局域网内未绑定的设备(未绑定设备通过属性isBind为false标注);手机无网时,局域网未绑定设备会消失,但会保留之前已经获取过的绑定设备。
获得的每个设备的信息包括:
2)订阅设备或解除订阅:
这个方法涵盖了两个主要功能:订阅设备与否、对局域网内的设备进行自动绑定。订阅设备表明用户关心这个设备的消息推送,同时如果该设备是用户未绑定的设备,在订阅的时候会自动进行设备绑定;解除订阅设备即用户不再关心设备的消息推送,解除订阅的时候不会解绑设备。
另外,需要主要注意的是,这里加载的是gizWifiDevice类,这一个类里面的方法和设备的相关操作功能有关。
3)注册设备状态变化通知:
通过这个方法监听设备的状态变化,包括设备上下线、设备状态、报警、故障信息,开发者通过提供回调函数来对上报的数据进行处理。
4)给设备发送控制指令:
设备需要在订阅后,并且状态为可控的情况下,用户才能够对设备进行控制。SDK优先选择局域网进行指令下发,如果不在局域网下,选择的是远程网络。另外,在用户下发控制设备指令后,设备会再次上报设备的状态,这样就形成一种闭环控制。
五、设备配网功能
设备提供两种方式进行配网:SoftAP方式、AirLink方式,在使用配网接口的时候需要区分不同产商的模块来完成配网,另外在配网成功后SDK会返回设备的mac、设备id以及所属的产品id——因此开发者可以调用前面提到订阅接口来完成局域网内设备绑定。
1)获取手机连接的ssid:
手机必须先连接到配置的wifi路由下。
2)配置设备路由:
六、设备绑定
前面提到,局域网内的设备能够通过订阅接口(gizWifiDevice.setSubscribe)来完成绑定,除此以外还能够通过另外一个接口来完成绑定:
通过这个接口进行绑定的一个情景就是将设备相关的mac信息记录在二维码中,由用户通过应用的二维码插件来完成扫描和读取信息,然后进行设备绑定。在APICloud平台中,我们可以载入scanner来完成二维码扫描的功能:
机智云提供的模块包中不止以上提到的接口,以上只是从中抽取出了常用的和重要的进行简要介绍,意在帮助大家对机智云基于APICloud平台下的APP开发有个快速和深刻的认识。更多的接口可以在APICloud平台中搜索gizWifiSDK模块的说明文档进行查看。
更多嵌入式Linux和物联网原创技术分享敬请关注微信公众号:嵌入式企鹅圈