微信小程序藍牙代碼與錯誤整理 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

微信小程序藍牙代碼與錯誤整理

發表時間:2021-4-30

發布人:葵宇科技

浏覽次數:238

微信小程序整體上是很不錯的,藍牙接口的确“坑”,“網絡端”的程序猿做“硬件接口”,

一些麻煩事兒

  1. 藍牙設備比較多會把手機卡死,公司能掃描到200+個(gè)設備,直接把iphone5S的微信卡死了。
  2. 每次硬件操作之間一定加延遲,建議100ms,例如(rú)“打開藍牙”與“開始掃描”間,“連接成功”與“獲取服務”等等之類。不使用延遲可(kě)能會出現莫名其妙的錯誤,多見于Android端。
  3. 注意JS的異步、并發特性,特别在輪詢service下(xià)的characteristic。小程序還不支持async,await(代碼補全中(zhōng)有這兩個(gè)關(guān)鍵字,但是編譯不過)。
  4. 藍牙的數據讀寫、advertisData的類型是ArrayBuffer,(引用小程序的注意:vConsole 無法打印出 ArrayBuffer 類型數據)。鞋童們請先把二進制數組、十六進制字符串弄明白吧,代碼中(zhōng)有轉換的方法(複制自github)。
  5. 初始化藍牙适配器(qì)(wx.openBluetoothAdapter(OBJECT))、獲取本機藍牙适配器(qì)狀态(wx.getBluetoothAdapterState(OBJECT)),這兩個(gè)函數那個(gè)先調用不好說,自己玩吧,見下(xià)說明。

一些BUG

  1. 藍牙在掃描過程中(zhōng),獲取本機藍牙适配器(qì)狀态(wx.getBluetoothAdapterState(OBJECT))。(Android獨有,華為榮耀8、VIVO 7plus,6.5.13)
  • available\Boolean\藍牙适配器(qì)是否可(kě)用,值為true。
  • discovering\Boolean\是否正在搜索設備,值為false。
  • https://github.com/FFiot/WX_Bluetooth/issues/1
  1. 藍牙在掃描過程中(zhōng),再次啟動(dòng)掃描wx.startBluetoothDevicesDiscovery(OBJECT):fail,errCode=10008。(Android獨有,華為榮耀8、VIVO 7plus,6.5.13)
  • https://github.com/FFiot/WX_Bluetooth/issues/2
  1. errorCode與errMsg混在一起。(IOS獨有,IPHONE5s,微信6.5.15)
  • https://github.com/FFiot/WX_Bluetooth/issues/3
  1. 藍牙在掃描service下(xià)character時,如(rú)果有多個(gè)service,隻能正常獲取第一個(gè)service下(xià)的character,其餘service獲取的chara與第一個(gè)service相同。(IOS獨有,IPHONE5s,微信6.5.15)

移動(dòng)設備藍牙開啟\關(guān)閉用兩種狀态,觸發wx.onBluetoothAdapterStateChange回調

  1. wx.getBluetoothAdapterState(OBJECT)
  • 關(guān)閉狀态返回:drrCode:10000,errMsg:"getBluetoothAdapterState:fail"。此時開啟藍牙: wx.onBluetoothAdapterStateChange(CALLBACK)無回調。
  • 開啟狀态返回:drrCode:10000,errMsg:"getBluetoothAdapterState:fail"。此時關(guān)閉藍牙: wx.onBluetoothAdapterStateChange(CALLBACK)無回調。
  1. wx.getBluetoothAdapterState(OBJECT)
  • 關(guān)閉狀态返回:drrCode:10001,errMsg:"openBluetoothAdapter:fail"。此時開啟藍牙:wx.onBluetoothAdapterStateChange(CALLBACK)有回調。
  • 開啟狀态返回:errMsg:"openBluetoothAdapter:ok"。此時開啟藍牙:wx.onBluetoothAdapterStateChange(CALLBACK)有回調。


相關(guān)案例查看更多