完整微信硬件接入案例源码:点我下载案例源码
摘要:用户打开手机蓝牙和微信并扫描设备二维码,绑定设备,连接设备,点击按钮获取设备的id,利用的是java+h5+jsapi技术,也就是说微信蓝牙和设备蓝牙接通之后进行数据的传输和交互,硬件设备都会通过蓝牙把数据返回到h5界面上了(通过微信蓝牙jsapi接口接收硬件设备返回的数据),硬件设备厂商提供的硬件有两种返回方式,一种是返回到服务器端,一种返回到h5界面(微信硬件设备jsapi接口接收发送数据)。本人在开发之初厂商提供的硬件都是返回到服务器端的,最后只能联系南方的硬件厂商修改芯片返回方式才得以解决。初始化微信硬件jsapi接口库需要微信jsapi开发基础,读者可在我们另一个栏目微信jsapi开发教程学习
微信jsapi是网页javascript的接口,该接口允许厂商的网页对局域网设备(设备必须支持AirKiss3.0)和蓝牙设备进行操作。例如扫描设备,连接设备,收发数据,绑定设备等。
Html通过Jsapi可以和设备本地收发数据(即Html发送给微信客户端,微信客户端发给设备),无需通过服务器中转,所以速度较快。
举例,对于实时性要求高的蓝牙设备(如遥控汽车)可采用jsapi收发数据。
对于局域网设备,当路由器无法连上互联网,并且设备和手机处于同一个路由器下面的情况,可以使用该jsapi直接和设备通信。
用户场景
用户打开微信,进入硬件公众号,点击菜单,进入厂家自定义的html界面。
用户点击html界面上的扫描按钮,开始扫描周围设备。当扫到多个设备的时候,html界面显示一个设备列表。
用户点击某个设备(该设备未绑定),进行绑定。html界面显示绑定成功,并开始连接设备。Html界面显示连接设备成功。
用户点击Html界面上的开始同步按钮。界面显示进度条,再显示同步成功。
以上只是简要说明了下,现在我们直接贴代码吧,根据代码案例来说明
<script type="text/javascript"> jQuery(document).ready(function(){ //初始化库 loadXMLDoc(); }); //微信硬件jsapi库 function loadXMLDoc() { var appId =jQuery("#appId").text(); var timestamp=jQuery("#timestamp").text(); var nonceStr =jQuery("#nonceStr").text(); var signature=jQuery("#signature").text(); wx.config({ beta: true, debug: true,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: appId, timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'openWXDeviceLib', 'closeWXDeviceLib', 'getWXDeviceInfos', 'getWXDeviceBindTicket', 'getWXDeviceUnbindTicket', 'startScanWXDevice', 'stopScanWXDevice', 'connectWXDevice', 'disconnectWXDevice', 'sendDataToWXDevice', 'onWXDeviceBindStateChange', 'onWXDeviceStateChange', 'onScanWXDeviceResult', 'onReceiveDataFromWXDevice', 'onWXDeviceBluetoothStateChange', ] }); alert("初始化库结束"); } //判断调用jsapi返回状态 true表示成功 wx.error(function (res) { alert("调用微信jsapi返回的状态:"+res.errMsg); }); </script>
loadXMLDoc()这个方法第9-12行四个参数可参考java获取微信timestamp,nonceStr,signature这节课。
第21行jsApiList是调用蓝牙设备硬件需要初始化的微信jsapi接口,如果想用哪个接口,直接在jsApiList中添加即可
第42行wx.error是微信官方文档提供开发者一种调用微信jsapi接口成功与否的方法,如果弹出true表示成功,但是调用这个方法必须第15行的debug类型设置为true状态。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程