這篇文章主要為大家展示了“微信硬件JS-Api開發(fā)的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“微信硬件JS-Api開發(fā)的示例分析”這篇文章吧。
在都安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),都安網(wǎng)站建設(shè)費(fèi)用合理。
1.引入JS庫
2.為頁面注入配置信息
wx.config({ beta: true, // 開啟內(nèi)測接口調(diào)用,注入wx.invoke方法,非常重要!!必須有這個(gè) debug: true,//開啟調(diào)試接口,alert運(yùn)行結(jié)果 appId: '',//必填,公眾號的唯一標(biāo)識, timestamp: '',//必填,生成簽名的時(shí)間戳 nonceStr: '',//必填,生成簽名的隨機(jī)串 signature: '',//必填,簽名 jsApiList: []//要調(diào)用的js函數(shù),必須把函數(shù)名字寫入數(shù)組 });
這里我的jsApiList為
jsApiList: [ 'openWXDeviceLib',//初始化設(shè)備庫(只支持藍(lán)牙設(shè)備) 'closeWXDeviceLib',//關(guān)閉設(shè)備庫(只支持藍(lán)牙設(shè)備) 'getWXDeviceInfos',//獲取設(shè)備信息(獲取當(dāng)前用戶已綁定的藍(lán)牙設(shè)備列表) 'sendDataToWXDevice',//發(fā)送數(shù)據(jù)給設(shè)備 'startScanWXDevice',//掃描設(shè)備(獲取周圍所有的設(shè)備列表,無論綁定還是未被綁定的設(shè)備都會掃描到) 'stopScanWXDevice',//停止掃描設(shè)備 'connectWXDevice',//連接設(shè)備 'disconnectWXDevice',//斷開設(shè)備連接 'getWXDeviceTicket',//獲取操作憑證 'onWXDeviceBindStateChange',//微信客戶端設(shè)備綁定狀態(tài)被改變時(shí)觸發(fā)此事件 'onWXDeviceStateChange',//監(jiān)聽連接狀態(tài),可以監(jiān)聽連接中、連接上、連接斷開 'onReceiveDataFromWXDevice',//接收到來自設(shè)備的數(shù)據(jù)時(shí)觸發(fā) 'onScanWXDeviceResult',//掃描到某個(gè)設(shè)備時(shí)觸發(fā) 'onWXDeviceBluetoothStateChange',//手機(jī)藍(lán)牙打開或關(guān)閉時(shí)觸發(fā) ]
如果想要測一下微信版本是不是支持這幾個(gè)api,可以這樣寫:
wx.checkJsApi({ jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 需要檢測的JS接口列表,所有JS接口列表見附錄2, success: function (res) { console.log(res); } });
3.初始化設(shè)備庫函數(shù)
通過ready接口處理成功驗(yàn)證
wx.ready(function () { wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib重新打開設(shè)備庫==>'); console.log(res); }); })
坑:重新掃描設(shè)備根本什么都掃不出來,即使是刷新頁面也不頂用
解決方法:每次掃描前,先調(diào)用closeWXDeviceLib關(guān)閉設(shè)備庫,再調(diào)用openWXDeviceLib打開設(shè)備庫。這樣就相當(dāng)于重新初始化了一遍設(shè)備庫,你現(xiàn)在再重新掃描,就可以掃描到設(shè)備了。
代碼:
wx.invoke("stopScanWXDevice", {}, function (res) { console.debug('stopScanWXDevice'); console.log(res); }); wx.invoke("closeWXDeviceLib", {}, function (res) { console.debug('closeWXDeviceLib關(guān)閉設(shè)備庫==>'); console.log(res); }); wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib重新打開設(shè)備庫==>'); console.log(res); });
4.監(jiān)聽設(shè)備返回的信息
wx.on('onReceiveDataFromWXDevice', function (res) { console.warn('onReceiveDataFromWXDevice=>'); console.log(JSON.stringify(res)); });
5.發(fā)送消息到設(shè)備
收發(fā)數(shù)據(jù)前需進(jìn)行 base64 的編解碼。
這里,我用到一個(gè)庫:
出處:
http://www.php.cn/
var data={"deviceId":deviceId,"base64Data": Base64.encode('你要發(fā)送的數(shù)據(jù)')}; console.log(data); wx.invoke('sendDataToWXDevice',data , function(res){ //回調(diào) console.info('發(fā)消息到設(shè)備sendMsg'); console.log(data); console.log(res); $('#dataFromDevice').append('發(fā)送消息的結(jié)果:'+JSON.stringify(res)); alert('已發(fā)送 請查看控制板'); });
說明:
1.需要在微信對應(yīng)設(shè)備號內(nèi)才能使用對應(yīng)的api。
2.必須要在設(shè)備號設(shè)置的安全域名下才能正常使用api
3.本篇內(nèi)所有的console.log 等輸出到控制臺 都是用的vconsole調(diào)試工具實(shí)現(xiàn)。
1.引入JS庫
2.為頁面注入配置信息
wx.config({ beta: true, // 開啟內(nèi)測接口調(diào)用,注入wx.invoke方法,非常重要!!必須有這個(gè) debug: true,//開啟調(diào)試接口,alert運(yùn)行結(jié)果 appId: '',//必填,公眾號的唯一標(biāo)識, timestamp: '',//必填,生成簽名的時(shí)間戳 nonceStr: '',//必填,生成簽名的隨機(jī)串 signature: '',//必填,簽名 jsApiList: []//要調(diào)用的js函數(shù),必須把函數(shù)名字寫入數(shù)組 });
這里我的jsApiList為
jsApiList: [ 'openWXDeviceLib',//初始化設(shè)備庫(只支持藍(lán)牙設(shè)備) 'closeWXDeviceLib',//關(guān)閉設(shè)備庫(只支持藍(lán)牙設(shè)備) 'getWXDeviceInfos',//獲取設(shè)備信息(獲取當(dāng)前用戶已綁定的藍(lán)牙設(shè)備列表) 'sendDataToWXDevice',//發(fā)送數(shù)據(jù)給設(shè)備 'startScanWXDevice',//掃描設(shè)備(獲取周圍所有的設(shè)備列表,無論綁定還是未被綁定的設(shè)備都會掃描到) 'stopScanWXDevice',//停止掃描設(shè)備 'connectWXDevice',//連接設(shè)備 'disconnectWXDevice',//斷開設(shè)備連接 'getWXDeviceTicket',//獲取操作憑證 'onWXDeviceBindStateChange',//微信客戶端設(shè)備綁定狀態(tài)被改變時(shí)觸發(fā)此事件 'onWXDeviceStateChange',//監(jiān)聽連接狀態(tài),可以監(jiān)聽連接中、連接上、連接斷開 'onReceiveDataFromWXDevice',//接收到來自設(shè)備的數(shù)據(jù)時(shí)觸發(fā) 'onScanWXDeviceResult',//掃描到某個(gè)設(shè)備時(shí)觸發(fā) 'onWXDeviceBluetoothStateChange',//手機(jī)藍(lán)牙打開或關(guān)閉時(shí)觸發(fā) ]
如果想要測一下微信版本是不是支持這幾個(gè)api,可以這樣寫:
wx.checkJsApi({ jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 需要檢測的JS接口列表,所有JS接口列表見附錄2, success: function (res) { console.log(res); } });
3.初始化設(shè)備庫函數(shù)
通過ready接口處理成功驗(yàn)證
wx.ready(function () { wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib重新打開設(shè)備庫==>'); console.log(res); }); })
坑:重新掃描設(shè)備根本什么都掃不出來,即使是刷新頁面也不頂用
解決方法:每次掃描前,先調(diào)用closeWXDeviceLib關(guān)閉設(shè)備庫,再調(diào)用openWXDeviceLib打開設(shè)備庫。這樣就相當(dāng)于重新初始化了一遍設(shè)備庫,你現(xiàn)在再重新掃描,就可以掃描到設(shè)備了。
代碼:
wx.invoke("stopScanWXDevice", {}, function (res) { console.debug('stopScanWXDevice'); console.log(res); }); wx.invoke("closeWXDeviceLib", {}, function (res) { console.debug('closeWXDeviceLib關(guān)閉設(shè)備庫==>'); console.log(res); }); wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib重新打開設(shè)備庫==>'); console.log(res); });
4.監(jiān)聽設(shè)備返回的信息
wx.on('onReceiveDataFromWXDevice', function (res) { console.warn('onReceiveDataFromWXDevice=>'); console.log(JSON.stringify(res)); });
5.發(fā)送消息到設(shè)備
收發(fā)數(shù)據(jù)前需進(jìn)行 base64 的編解碼。
這里,我用到一個(gè)庫:
出處:
http://www.php.cn/
var data={"deviceId":deviceId,"base64Data": Base64.encode('你要發(fā)送的數(shù)據(jù)')}; console.log(data); wx.invoke('sendDataToWXDevice',data , function(res){ //回調(diào) console.info('發(fā)消息到設(shè)備sendMsg'); console.log(data); console.log(res); $('#dataFromDevice').append('發(fā)送消息的結(jié)果:'+JSON.stringify(res)); alert('已發(fā)送 請查看控制板'); });
說明:
1.需要在微信對應(yīng)設(shè)備號內(nèi)才能使用對應(yīng)的api。
2.必須要在設(shè)備號設(shè)置的安全域名下才能正常使用api
3.本篇內(nèi)所有的console.log 等輸出到控制臺 都是用的vconsole調(diào)試工具實(shí)現(xiàn)。
以上是“微信硬件JS-Api開發(fā)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!