#微信小程序# 藍牙模塊
-Start:關注本公眾號后,可直接聯(lián)系后臺獲取排版美化的詳細文檔!
-Hints:本篇文章所編纂的資料均來自網絡,特此感謝參與奉獻的有關人員。
微信小程序-開發(fā)步驟說明
-開發(fā)賬號申請
https://mp.weixin.qq.com/wxopen/waregister?action=step1&token=&lang=zh_CN
-賬號APPID獲取
https://mp.weixin.qq.com/wxamp/basicprofile/index?token=784407765&lang=zh_CN
微信管理平臺:設置》賬號信息》AppID
-開發(fā)工具部署
下載地址:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
使用說明:
https://www.w3cschool.cn/weixinapp/weixinapp-devtools.html
?
微信小程序-項目基礎結構

1 pages,小程序的頁面組成,有index 頁面和 logs 頁面,即歡迎頁和日志頁
Js文件,頁面邏輯
Wxml文件,頁面結構
Json文件,頁面配置
Wxss文件,頁面樣式
2 utils 存放js文件,支持公共函數(shù)
3 app.js是小程序的腳本代碼。監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量,調用微信原生 API、網絡超時時間、底部tab
4app.json 是小程序的全局配置。配置小程序的頁面組成,窗口背景色,導航條樣式,默認標題。注意該文件不可添加任何注釋。
5 app.wxss是小程序的公共樣式表。頁面組件的 class 屬性可以直接使用app.wxss 中聲明的樣式規(guī)則。
6 project.config.json在工具上做的任何配置都會寫入到這個文件,當你重新安裝工具或者換電腦工作時,你只要載入同一個項目的代碼包,開發(fā)者工具就自動會幫你恢復到當時你開發(fā)項目時的個性化配置,其中會包括編輯器的顏色、代碼上傳時自動壓縮等等一系列選項。
7 sitemap.json開發(fā)者可以通過 sitemap.json 配置,或者管理后臺頁面收錄開關來配置其小程序頁面是否允許微信索引。當開發(fā)者允許微信索引時,微信會通過爬蟲的形式,為小程序的頁面內容建立索引。當用戶的搜索詞條觸發(fā)該索引時,小程序的頁面將可能展示在搜索結果中。
8 readme.md自行添加的關于項目的說明文件
?
微信小程序-藍牙模塊開發(fā)
-藍牙API生效周期:
藍牙適配器模塊生效周期為調用?wx.openBluetoothAdapter?至調用?wx.closeBluetoothAdapter?或小程序被銷毀為止。在小程序藍牙適配器模塊生效期間,開發(fā)者才能夠正常調用藍牙相關的小程序 API,并收到藍牙模塊相關的事件回調。
-藍牙設備地址說明:
--由于系統(tǒng)限制,Android 上獲取到的?deviceId?為設備 MAC 地址,iOS 上則為設備uuid。因此?deviceId?不能硬編碼到代碼中。
--目前不支持在開發(fā)者工具上進行藍牙功能的調試,需要使用真機才能正常調用小程序藍牙接口。
-低功耗藍牙BLE說明:
iOS 上對特征值的?read、write、notify操作,由于系統(tǒng)需要獲取特征值實例,傳入的?serviceId?與?characteristicId?必須由?wx.getBLEDeviceServices?與?wx.getBLEDeviceCharacteristics?中獲取到后才能使用。建議雙平臺統(tǒng)一在建立連接后先執(zhí)行?wx.getBLEDeviceServices?與?wx.getBLEDeviceCharacteristics?后再進行與藍牙設備的數(shù)據(jù)交互。
微信小程序--藍牙開放接口
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
success | Function | 是 | 成功則返回成功初始化信息 |
fail | Function | 否 | 接口調用失敗的回調函數(shù) |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
--獲取本機藍牙適配器狀態(tài)
wx.getBluetoothAdapterState(OBJECT)
--初始化藍牙適配器
wx.openBluetoothAdapter
--開始搜尋附近的藍牙外圍設備
wx.startBluetoothDevicesDiscovery(OBJECT)
--停止搜尋附近的藍牙外圍設備
搜尋附近的藍牙外圍設備操作比較耗費系統(tǒng)資源,請在搜索并連接到設備后調用 stop 方法停止搜索。
wx.stopBluetoothDevicesDiscovery(OBJECT)
--獲取所有已發(fā)現(xiàn)的藍牙設備,包括已經和本機處于連接狀態(tài)的設備
wx.getBluetoothDevices(OBJECT)
--獲取處于已連接狀態(tài)的設備
wx.getConnectedBluetoothDevices(OBJECT)
--監(jiān)聽藍牙適配器狀態(tài)變化事件
wx.onBluetoothAdapterStateChange(CALLBACK)
--監(jiān)聽尋找到新設備的事件
wx.onBluetoothDeviceFound(CALLBACK)
wx.createBLEConnection({
? // 這里的 deviceId 需要在上面的 getBluetoothDevices 或onBluetoothDeviceFound 接口中獲取
? deviceId: deviceId,
? success: function (res) {
??? console.log(res)
? }
})
--連接低功耗藍牙設備
wx.createBLEConnection(OBJECT)
--獲取藍牙設備所有 service(服務)
wx.getBLEDeviceServices(OBJECT)
--獲取藍牙設備所有 characteristic(特征值)
wx.getBLEDeviceCharacteristics(OBJECT)
--讀取低功耗藍牙設備的特征值的二進制數(shù)據(jù)值
注意:必須設備的特征值支持read才可以成功調用,具體參照 characteristic 的 properties 屬性
wx.readBLECharacteristicValue(OBJECT)
--向低功耗藍牙設備特征值中寫入二進制數(shù)據(jù)
wx.writeBLECharacteristicValue(OBJECT)
注意:必須設備的特征值支持write才可以成功調用,具體參照 characteristic 的 properties 屬性
tips: 并行調用多次讀寫接口存在讀寫失敗的可能性
--啟用低功耗藍牙設備特征值變化時的 notify 功能。
wx.notifyBLECharacteristicValueChanged(OBJECT)
注意:必須設備的特征值支持notify才可以成功調用,具體參照 characteristic 的 properties
--監(jiān)聽低功耗藍牙連接的錯誤事件,包括設備丟失,連接異常斷開等等
wx.onBLEConnectionStateChanged(CALLBACK)
--監(jiān)聽低功耗藍牙設備的特征值變化
必須先啟用notify接口才能接收到設備推送的notification。
wx.onBLECharacteristicValueChange(CALLBACK)
--藍牙配對接口,僅安卓使用。安卓上藍牙連接時,部分設備需先配對。
wx.makeBluetoothPair(Objectobject)
--斷開與低功耗藍牙設備的連接
wx.closeBLEConnection(OBJECT)
--關閉藍牙模塊
wx.closeBluetoothAdapter
詳細資料:https://www.w3cschool.cn/weixinapp/weixinapp-bluetooth.html
?
微信小程序-藍牙連接流程
小程序與藍牙設備建立連接進行通訊的一般流程如下:


詳細資料:https://blog.csdn.net/liweipei_gd/article/details/114829582
?
微信小程序-藍牙開發(fā)Demo:
Demo代碼:
https://developers.weixin.qq.com/s/pQU51zmz7a3K
Demo連接:
https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth-ble/wx.writeBLECharacteristicValue.html
Demo思路:
1打開藍牙適配器接口wx.openBluetoothAdapter
1.1藍牙適配器啟用成功,搜索藍牙設備wx.startBluetoothDevicesDiscovery
1.2藍牙適配器啟用失敗,監(jiān)聽藍牙適配器狀態(tài)變化wx.onBluetoothAdapterStateChange
1.2.1 當藍牙適配器狀態(tài)為可用時,進行搜索藍牙設備wx.startBluetoothDevicesDiscovery
2 搜索藍牙設備wx.startBluetoothDevicesDiscovery
3 獲取發(fā)現(xiàn)的藍牙設備wx.onBluetoothDeviceFound
4 進行低功耗藍牙設備連接wx.createBLEConnection
4.1 低功耗藍牙連接成功,獲取藍牙設備所有 service(服務)wx.getBLEDeviceServices(OBJECT)
4.1.1 低功耗藍牙連接成功,獲取藍牙設備service成功,進行獲取藍牙設備所有 characteristic(特征值)wx.getBLEDeviceCharacteristics(OBJECT)
4.1.1.1 低功耗藍牙連接成功,獲取藍牙設備service成功,獲取藍牙設備characteristic成功,讀取低功耗藍牙設備的特征值的二進制數(shù)據(jù)值,wx.readBLECharacteristicValue(OBJECT)
5 向低功耗藍牙設備特征值中寫入二進制數(shù)據(jù)wx.writeBLECharacteristicValue
6 啟用低功耗藍牙設備特征值變化時的 notify 功能wx.notifyBLECharacteristicValueChange
7 停止搜尋附近的藍牙外圍設備wx.stopBluetoothDevicesDiscovery(OBJECT)
8 關閉低功耗藍牙連接?wx.closeBLEConnection
9 關閉藍牙適配器?wx.closeBluetoothAdapter
?
參考資料
https://blog.csdn.net/qq_37896578/article/details/103721004?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1
https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth/wx.stopBluetoothDevicesDiscovery.html
https://blog.csdn.net/liweipei_gd/article/details/114829582
公眾號二維碼
End:如果有興趣了解量化交易、數(shù)據(jù)分析和互聯(lián)網+的實用技術,歡迎關注本公眾號
