1.引入JS庫javascript
<script type='text/javascript' src='//res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
2.爲頁面注入配置信息java
wx.config({ beta: true, // 開啓內測接口調用,注入wx.invoke方法,很是重要!!必須有這個 debug: true,//開啓調試接口,alert運行結果 appId: '',//必填,公衆號的惟一標識, timestamp: '',//必填,生成簽名的時間戳 nonceStr: '',//必填,生成簽名的隨機串 signature: '',//必填,簽名 jsApiList: []//要調用的js函數,必須把函數名字寫入數組 });
這裏個人jsApiList爲git
jsApiList: [ 'openWXDeviceLib',//初始化設備庫(只支持藍牙設備) 'closeWXDeviceLib',//關閉設備庫(只支持藍牙設備) 'getWXDeviceInfos',//獲取設備信息(獲取當前用戶已綁定的藍牙設備列表) 'sendDataToWXDevice',//發送數據給設備 'startScanWXDevice',//掃描設備(獲取周圍全部的設備列表,不管綁定仍是未被綁定的設備都會掃描到) 'stopScanWXDevice',//中止掃描設備 'connectWXDevice',//鏈接設備 'disconnectWXDevice',//斷開設備鏈接 'getWXDeviceTicket',//獲取操做憑證 'onWXDeviceBindStateChange',//微信客戶端設備綁定狀態被改變時觸發此事件 'onWXDeviceStateChange',//監聽鏈接狀態,能夠監聽鏈接中、鏈接上、鏈接斷開 'onReceiveDataFromWXDevice',//接收到來自設備的數據時觸發 'onScanWXDeviceResult',//掃描到某個設備時觸發 'onWXDeviceBluetoothStateChange',//手機藍牙打開或關閉時觸發 ]
若是想要測一下微信版本是否是支持這幾個api,能夠這樣寫:github
wx.checkJsApi({ jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 須要檢測的JS接口列表,全部JS接口列表見附錄2, success: function (res) { console.log(res); } });
3.初始化設備庫函數api
經過ready接口處理成功驗證數組
wx.ready(function () { wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib從新打開設備庫==>'); console.log(res); }); })
坑:從新掃描設備根本什麼都掃不出來,即便是刷新頁面也不頂用安全
解決方法:每次掃描前,先調用closeWXDeviceLib關閉設備庫,再調用openWXDeviceLib打開設備庫。這樣就至關於從新初始化了一遍設備庫,你如今再從新掃描,就能夠掃描到設備了。微信
代碼:app
wx.invoke("stopScanWXDevice", {}, function (res) { console.debug('stopScanWXDevice'); console.log(res); }); wx.invoke("closeWXDeviceLib", {}, function (res) { console.debug('closeWXDeviceLib關閉設備庫==>'); console.log(res); }); wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib從新打開設備庫==>'); console.log(res); });
4.監聽設備返回的信息函數
wx.on('onReceiveDataFromWXDevice', function (res) { console.warn('onReceiveDataFromWXDevice=>'); console.log(JSON.stringify(res)); });
5.發送消息到設備
收發數據前需進行 base64 的編解碼。
這裏,我用到一個庫:
<script type='text/javascript' src='base64.js'></script>
出處:
https://github.com/dankogai/j...
var data={"deviceId":deviceId,"base64Data": Base64.encode('你要發送的數據')}; console.log(data); wx.invoke('sendDataToWXDevice',data , function(res){ //回調 console.info('發消息到設備sendMsg'); console.log(data); console.log(res); $('#dataFromDevice').append('發送消息的結果:'+JSON.stringify(res)); alert('已發送 請查看控制板'); });
說明:
1.須要在微信對應設備號內才能使用對應的api。
2.必需要在設備號設置的安全域名下才能正常使用api
3.本篇內全部的console.log 等輸出到控制檯 都是用的vconsole調試工具實現。