微信硬件jsapi使用教程说明蓝牙篇(第六课)

2016年08月11日 10:36 | 3292次浏览 | 分类: 微信蓝牙开发 作者原创 版权保护

这节介绍的都是纯理论东西,如果读者有基础能力可以绕过,反之,建议读者仔细研读。


如上图大体框架图所示
红色箭头走向为结合微信硬件jsapi接口,我们的html界面通过jsapi微信的ajax接口进行微信app和设备进行数据传输,厂商服务器及我们自己跑公众号的服务器。

黑色箭头表示微信app通过蓝牙和硬件设备连接成功后进行数据的交互,这些数据并没有返回到html界面,而是返回到我们自己服务器的后台中了,读者可在后台输出日志中查询确认。

一旦发现设备和微信蓝牙连接成功后,进行数据交互,前端html界面并没有返回数据,可联系硬件提供商修改芯片程序(把返回来下修改成返回到h5界面)。

微信JS-SDK使用

微信硬件JSAPI接口属于微信JS-SDK的一部分,所以硬件JSAPI的使用首先需要遵循微信JS-SDK的使用规范

微信硬件JSAPI使用

微信JS-SDK是使用JSAPI的基础,必须了解新框架的基本用法,如wx.config函数和wx.ready函数,这是所有JSAPI使用的前提

在JS-SDK初始化的基础上,请按如下方法使用微信硬件JSAPI

1.需要在wx.config的方法的参数jsApiList数组中,传入需要额外使用的jsapi名称。(在使用任何jsapi的接口前,必须先调用wx.config方法)。

2.需要在config方法中传入一个beta字段,并复制为true,则会在注入wx.invoke方法来调用还未开放的jsapi方法。(页面加载时就调用jsapi,则必须放到wx.ready回调中)。

例:添加收藏 addGoodsToFav:

 wx.config({
			beta: true, // 开启内测接口调用,注入wx.invoke方法
				debug: true, // 开启调试模式
				appId: '', // 第三方app唯一标识
				timestamp: 0, // 生成签名的时间戳
				nonceStr: '', // 生成签名的随机串
				signature: '',// 签名
				jsApiList: ['addGoodsToFav'] // 需要使用的jsapi列表,所有jsapi列表见附录2
			});
			wx.ready(function () {
			wx.invoke('addGoodsToFav', {
			"title": "",
			"link": "",
			"desc": "",
			"thumbimg": ""
			}, function(res){
			//这里是回调函数
			});
			});

蓝牙设备

对蓝牙设备的使用JSAPI流程可分为初始化库,扫描,连接,收发数据,断开连接,关闭库。

前提

在硬件公众号里打开的网页才可以调用设备jsapi

每个公众号的网页只能操作属于该公众号的设备。

初始化库

Html需先调用openWXDeviceLib,进行库的初始化。微信app会启动html5的硬件功能,并会把相关的事件传递给Html

Html不想使用硬件功能的时候,调用closeWXDeviceLib。微信app释放资源,并不再发送事件给Html

当调用了openWXDeviceLib之后,一般接着调用getWXDeviceInfos,获取该用户绑定了的设备列表,以及设备状态。然后监听onWXDeviceBindStateChange,更新已绑定的设备状态。

扫描设备

正常情况无需扫描设备,直接连接设备即可。除非是想绑定设备。

当扫描到某个设备的时候,html会收到事件回调(onScanWXDevicesResult)。对于同一种类型的广播包(目前有两种类型:普通的广播包,确认包),无论手机收到多少个广播包,html也只会收到一次事件回调。

连接设备

html发现设备状态为未连接,可直接连接设备,无需扫描。

收发数据

当连上设备之后,即可对设备进行收发数据。

收发数据前需进行base64的编解码。

断开连接

当不想用设备时,即可断开连接。

关闭库

当不想使用硬件jsapi功能时,即可关闭库。如果html忘记关闭库,微信会在浏览器关闭的时候关闭库,但不会断开设备的连接。

绑定/解绑设备

当用户要绑定设备的时候,html需要进行扫描(startScanWXDevice),以显示周边未绑定的设备的列表(注意,已绑定的设备列表可以通过getWXDeviceInfos得到)。

当用户选择某个设备进行绑定之后,html开始绑定设备的流程。首先获取一个绑定设备的ticketgetWXDeviceTicket),并把ticket发送给厂商服务器(通过ajax等),厂商服务器调用公众平台的接口(需要用到ticket),进行绑定。绑定成功后,厂商服务器通知html绑定成功(通过ajax等),html显示绑定成功。当监听到onWXDeviceBindStateChange,则表示微信客户端也同步了绑定关系。

解绑流程类似。

以上是微信app基于手机蓝牙 和蓝牙设备进行互联互通并进行交互数据的使用说明,请初学者自行研读,弄清整个流程,否则接下来的章节可能会对初学者的理解难度上有所困难。特别是代码示例。代码示例都java+html+jquery(js)+微信jsapi接口技术。

此文章本站原创,地址 http://www.vxzsk.com/96.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程