赞
踩
文章来源 http://www.vxzsk.com/96.html
这节介绍的都是纯理论东西,如果读者有基础能力可以绕过,反之,建议读者仔细研读。
如上图大体框架图所示
红色箭头走向为结合微信硬件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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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开始绑定设备的流程。首先获取一个绑定设备的ticket(getWXDeviceTicket),并把ticket发送给厂商服务器(通过ajax等),厂商服务器调用公众平台的接口(需要用到ticket),进行绑定。绑定成功后,厂商服务器通知html绑定成功(通过ajax等),html显示绑定成功。当监听到onWXDeviceBindStateChange,则表示微信客户端也同步了绑定关系。
解绑流程类似。
以上是微信app基于手机蓝牙 和蓝牙设备进行互联互通并进行交互数据的使用说明,请初学者自行研读,弄清整个流程,否则接下来的章节可能会对初学者的理解难度上有所困难。特别是代码示例。代码示例都java+html+jquery(js)+微信jsapi接口技术。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。