本文来源: http://www.vxzsk.com/93.html V型知识库
摘要:用户打开手机蓝牙和微信并扫描设备二维码,绑定设备,连接设备,点击按钮获取设备的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界面上的开始同步按钮。界面显示进度条,再显示同步成功。
以上只是简要说明了下,现在我们直接贴代码吧,根据代码案例来说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<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状态。