热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

物联网跨平台应用开发

本文由嵌入式企鹅圈原创团队成员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和物联网原创技术分享敬请关注微信公众号:嵌入式企鹅圈





推荐阅读
  • 2015年,互联网企业人人网在产品岗位的招聘中,设置了多项笔试题目,旨在全面考察应聘者的专业能力和综合素质。本文对这些题目进行了详细解析,并提供了备考指南,帮助考生更好地准备考试。内容涵盖填空题、选择题等多种题型,重点解析了如性别偏好等社会现象的应用题,为考生提供全面的参考和指导。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 掌握这些技巧,轻松获取超过90%的资源信息
    在数字时代,高效获取所需资源是每个人必备的技能。本文将分享一系列实用技巧,帮助读者轻松获取超过90%的网络资源信息,无论是学术资料、技术文档还是最新资讯,都能迅速找到。通过优化搜索引擎使用、利用专业数据库和社群资源等方法,读者将能够在信息海洋中游刃有余。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 移动搜索格局已定,切勿误解微信搜索的真正实力
    近期,微信新版本的内测界面曝光,新增了朋友圈搜索和附近商户搜索功能。种种迹象显示,微信正不断强化其搜索能力。尽管移动搜索市场格局已基本稳定,但不应低估微信搜索的潜力。微信不仅在聊天工具、移动浏览器和新闻阅读等领域持续发力,还在通过搜索功能进一步巩固其在移动互联网领域的地位。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 如何在安卓设备上恢复已删除的微信聊天记录?详细教程与技巧分享
    在安卓设备上恢复已删除的微信聊天记录是一项常见需求,但许多用户对此并不熟悉。本文将详细介绍具体的恢复步骤和技巧,帮助用户轻松找回丢失的聊天记录。通过专业的数据恢复工具和方法,您可以高效地完成这一过程,确保重要信息不丢失。 ... [详细]
  • 开源实习机会 | Compiler SIG 正式发布实习任务,诚邀您加入申请!
    对编译技术充满兴趣却苦于无从入手?当前疫情形势下,外出实习变得困难重重?现在,Compiler SIG 正式发布了一系列实习任务,为有志之士提供了宝贵的机会。无论你是初学者还是有一定基础的学生,都能在这里找到适合自己的实践项目。我们诚挚邀请您的加入,共同探索编译技术的无限可能! ... [详细]
  • TensorFlow Lite在移动设备上的部署实践与优化笔记
    近期在探索如何将服务器端的模型迁移到移动设备上,并记录了一些关键问题和解决方案。本文假设读者具备以下基础知识:了解TensorFlow的计算图(Graph)、图定义(GraphDef)和元图定义(MetaGraphDef)。此外,文中还详细介绍了模型转换、性能优化和资源管理等方面的实践经验,为开发者提供有价值的参考。 ... [详细]
author-avatar
麦豪小仙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有