最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序實現(xiàn)藍牙設備搜索及連接功能示例詳解

 更新時間:2023年06月12日 10:56:51   作者:Java?Fans  
這篇文章主要介紹了微信小程序實現(xiàn)藍牙設備搜索及連接功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、在小程序的app.json文件中添加藍牙權限

在app.json中寫入如下代碼

  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息將用于小程序定位"
    },
    "scope.bluetooth": {
      "desc": "你的藍牙信息將用于小程序連接設備"
    }
  },

2、新建一個展示藍牙列表的界面 index

在pages目錄下,新建一個Page,命名為index,生成如下文件:

2.1、在index.wxml文件中,添加如下代碼:

<view class="container">
  <view class="title">藍牙設備列表</view>
  <view class="list">
    <block wx:for="{{devices}}" wx:key="index">
      <view class="item" bindtap="connectDevice" data-device="{{item}}">
        <view class="name">{{item.name}}</view>
        <view class="rssi">信號強度:{{item.RSSI}}</view>
      </view>
    </block>
  </view>
</view>

2.2、在index.wxss文件中添加如下代碼:

.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
.title {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 20px;
}
.list {
  width: 100%;
}
.item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding: 10px;
  border-bottom: 1px solid #eee;
}
.name {
  font-size: 16px;
  font-weight: bold;
}
.rssi {
  font-size: 14px;
  color: #999;
}

2.3、在index.js文件中相關代碼及說明

第一步:藍牙初始化,wx.openBluetoothAdapter(Object object);

  初始化藍牙模塊。iOS 上開啟主機/從機(外圍設備)模式時需分別調用一次,并指定對應的 mode。

  // 第一步,藍牙初始化成功
  onLoad: function () {
    wx.openBluetoothAdapter({
      success: (res) => {
        console.log('第一步,藍牙初始化成功', res)
        //開始搜索附近藍牙
        this.startBluetoothDevicesDiscovery()
      },
      fail: (res) => {
        console.log("第一步、藍牙初始化失敗", res);
        wx.showToast({ title: '藍牙初始化失敗', icon: 'none' })
      }
    })
  },

注意

  其他藍牙相關 API 必須在 wx.openBluetoothAdapter 調用之后使用。否則 API 會返回錯誤(errCode=10000)。

  在用戶藍牙開關未開啟或者手機不支持藍牙功能的情況下,調用 wx.openBluetoothAdapter 會返回錯誤(errCode=10001),表示手機藍牙功能不可用。此時小程序藍牙模塊已經初始化完成,可通過 wx.onBluetoothAdapterStateChange 監(jiān)聽手機藍牙狀態(tài)的改變,也可以調用藍牙模塊的所有API。

第二步:開始搜索附近的藍牙設備,wx.startBluetoothDevicesDiscovery(Object object)

  開始搜尋附近的藍牙外圍設備。

  此操作比較耗費系統(tǒng)資源,請在搜索到需要的設備后及時調用 wx.stopBluetoothDevicesDiscovery 停止搜索

  // 第二步 開始搜索附近的藍牙設備
  startBluetoothDevicesDiscovery() {
    wx.startBluetoothDevicesDiscovery({
      allowDuplicatesKey: false,
      success: (res) => {
        console.log('開始搜索附近的藍牙設備', res)
        this.onBluetoothDeviceFound()
      },
    })
  },

注意

  考慮到藍牙功能可以間接進行定位,安卓 6.0 及以上版本,無定位權限或定位開關未打開時,無法進行設備搜索。這種情況下,安卓 8.0.16 前,接口調用成功但無法掃描設備;8.0.16 及以上版本,會返回錯誤。

第三步:監(jiān)聽發(fā)現(xiàn)附近的藍牙設備,wx.onBluetoothDeviceFound(function listener)

  監(jiān)聽搜索到新設備的事件

  // 第三步 監(jiān)聽發(fā)現(xiàn)附近的藍牙設備
  onBluetoothDeviceFound() {
    wx.onBluetoothDeviceFound((res) => {
      res.devices.forEach(device => {
        if (!device.name && !device.localName) { return }
        console.log("發(fā)現(xiàn)的藍牙設備", device)
        this.data.devices.push(device)
        this.setData({ devices: this.data.devices })
      })
    })
  },

注意

  若在 wx.onBluetoothDeviceFound 回調了某個設備,則此設備會添加到 wx.getBluetoothDevices 接口獲取到的數組中。

第四步:建立連接,wx.createBLEConnection(Object object)

  連接藍牙低功耗設備。

  若小程序在之前已有搜索過某個藍牙設備,并成功建立連接,可直接傳入之前搜索獲取的 deviceId 直接嘗試連接該設備,無需再次進行搜索操作。

  // 第四步、 建立連接
  connectDevice: function (e) {
    const device = e.currentTarget.dataset.device
    wx.createBLEConnection({
      deviceId: device.deviceId,
      success: (res) => {
        console.log('createBLEConnection success', res)
        wx.showToast({ title: '藍牙連接成功', icon: 'none' })
        this.stopBluetoothDevicesDiscovery()
        wx.navigateTo({
          url: '/pages/main/main?deviceId=' + device.deviceId
        })
      },
      fail: (res) => {
        wx.showToast({ title: '藍牙連接失敗', icon: 'none' })
      }
    })
  },

注意

  請保證盡量成對的調用 wx.createBLEConnection 和 wx.closeBLEConnection 接口。安卓如果重復調用 wx.createBLEConnection 創(chuàng)建連接,有可能導致系統(tǒng)持有同一設備多個連接的實例,導致調用 closeBLEConnection 的時候并不能真正的斷開與設備的連接。

  藍牙連接隨時可能斷開,建議監(jiān)聽 wx.onBLEConnectionStateChange 回調事件,當藍牙設備斷開時按需執(zhí)行重連操作。

  若對未連接的設備或已斷開連接的設備調用數據讀寫操作的接口,會返回 10006 錯誤,建議進行重連操作。

第五步:停止搜索,wx.stopBluetoothDevicesDiscovery(Object object)

  停止搜尋附近的藍牙外圍設備。若已經找到需要的藍牙設備并不需要繼續(xù)搜索時,建議調用該接口停止藍牙搜索。

  // 第五步、 停止搜索
  stopBluetoothDevicesDiscovery(){
    wx.stopBluetoothDevicesDiscovery({
      success: function(res) {
        console.log('停止搜索成功');
      },
      fail: function(res) {
        console.log('停止搜索失敗');
      }
    });
  }

其中,devices在data中定義如下:

  data: {
    devices: []
  },

3、測試

選擇整機調試,效果圖如下:

到此這篇關于微信小程序——實現(xiàn)藍牙設備搜索及連接功能的文章就介紹到這了,更多相關微信小程序藍牙連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JS+CSS實現(xiàn)滑動切換tab菜單效果

    JS+CSS實現(xiàn)滑動切換tab菜單效果

    這篇文章主要介紹了JS+CSS實現(xiàn)滑動切換tab菜單效果,涉及javascript鼠標事件及頁面元素樣式的動態(tài)切換效果實現(xiàn)技巧,需要的朋友可以參考下
    2015-08-08
  • JS防止用戶多次提交的簡單代碼

    JS防止用戶多次提交的簡單代碼

    這篇文章介紹了JS防止用戶多次提交的簡單代碼,有需要的朋友可以參考一下
    2013-08-08
  • 小程序如何自主實現(xiàn)攔截器的示例代碼

    小程序如何自主實現(xiàn)攔截器的示例代碼

    這篇文章主要介紹了小程序如何自主實現(xiàn)攔截器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • JavaScript面試必備之垃圾回收機制和內存泄漏詳解

    JavaScript面試必備之垃圾回收機制和內存泄漏詳解

    垃圾回收機制和內存泄漏是JavaScript面試時常常問到的問題,這篇文章就為大家詳細整理了他們的相關知識,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-05-05
  • javascript實現(xiàn)密碼強度顯示

    javascript實現(xiàn)密碼強度顯示

    這篇文章主要介紹了使用javascript實現(xiàn)密碼強度顯示,十分實用的功能,從個人項目中移植出來的,分享給大家,希望大家能夠喜歡。
    2015-03-03
  • js中用FileSaver.saveAs()方法監(jiān)聽保存進度及進度條等方法

    js中用FileSaver.saveAs()方法監(jiān)聽保存進度及進度條等方法

    在實際場景中進度條通常是用于展示異步操作的進度,這篇文章主要給大家介紹了關于js中用FileSaver.saveAs()方法監(jiān)聽保存進度及進度條等方法的相關資料,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-12-12
  • javascript 進度條 實現(xiàn)代碼

    javascript 進度條 實現(xiàn)代碼

    這個例子是通過測試的。是真真正正根據記錄的條數掛鉤的。
    2009-07-07
  • 在JavaScript中讓this保持正確的指向的解決方案

    在JavaScript中讓this保持正確的指向的解決方案

    這篇文章主要介紹了關于在 JavaScript 中如何讓 this 保持正確的指向的解決方案,文中給大家介紹了三種解決方案,使用閉包,使用箭頭函數和換綁 this這三種方法,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • javaScript中indexOf用法技巧

    javaScript中indexOf用法技巧

    在本篇文章里小編給大家整理的是一篇關于javaScript中indexOf用法技巧的相關文章,有需要的朋友們學習下。
    2019-11-11
  • 簡單談談JavaScript寄生式組合繼承

    簡單談談JavaScript寄生式組合繼承

    寄生組合式繼承,是集寄生式繼承和組合繼承的有點與一身,主要是通過借用構造函數來繼承屬性,通過原型鏈的混成形式來繼承方法,這篇文章主要給大家介紹了關于JavaScript寄生式組合繼承的相關資料,需要的朋友可以參考下
    2021-08-08

最新評論

嘉定区| 安宁市| 探索| 昂仁县| 方城县| 黄平县| 昌平区| 南陵县| 溆浦县| 且末县| 女性| 伊吾县| 喀喇沁旗| 武清区| 大化| 镇康县| 阜平县| 基隆市| 罗平县| 印江| 广元市| 南丹县| 德惠市| 南充市| 土默特左旗| 商城县| 瑞昌市| 称多县| 霍山县| 衡水市| 微山县| 额敏县| 淮安市| 万山特区| 扎赉特旗| 西青区| 晋宁县| 湖口县| 威宁| 遂宁市| 武宁县|