在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

微信小程序如何完成藍牙的案例分享

微信小程序如何完成藍牙的案例分享

更新時間:2025-09-28 文章作者:未知 信息來源:網絡 閱讀次數:

微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
這篇文章主要介紹了微信小程序 藍牙的實現實例代碼的相關資料,需要的朋友可以參考下

微信小程序 藍牙的實現實例代碼

1.簡述

藍牙適配器接口是基礎庫版本 1.1.0 開始支持。
iOS 微信客戶端 6.5.6 版本開始支持,Android 客戶端暫不支持
藍牙總共增加了18個api接口。

2.Api分類

搜索類
連接類
通信類

3.API的具體使用

詳細見官網:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/bluetooth.html#wxgetconnectedbluethoothdevicesobject

4. 案例實現

4.1 搜索藍牙設備

/**
 * 搜索設備界面
 */
Page({
 data: {
  logs: [],
  list:[],
 },
  onLoad: function () {
  console.log('onLoad')
var that = this;
// const SDKVersion = wx.getSystemInfoSync().SDKVersion || '1.0.0'
// const [MAJOR, MINOR, PATCH] = SDKVersion.split('.').map(Number)
// console.log(SDKVersion);
// console.log(MAJOR);
// console.log(MINOR);
// console.log(PATCH);

// const canIUse = apiName => {
//  if (apiName === 'showModal.cancel') {
//   return MAJOR >= 1 && MINOR >= 1
//  }
//  return true
// }

// wx.showModal({
//  success: function(res) {
//   if (canIUse('showModal.cancel')) {
//    console.log(res.cancel)
//   }
//  }
// })
   //獲取適配器
   wx.openBluetoothAdapter({
   success: function(res){
    // success
    console.log("-----success----------");
     console.log(res);
     //開始搜索
    wx.startBluetoothDevicesDiscovery({
 services: [],
 success: function(res){
  // success
   console.log("-----startBluetoothDevicesDiscovery--success----------");
   console.log(res);
 },
 fail: function(res) {
  // fail
   console.log(res);
 },
 complete: function(res) {
  // complete
   console.log(res);
 }
})


   },
   fail: function(res) {
     console.log("-----fail----------");
    // fail
     console.log(res);
   },
   complete: function(res) {
    // complete
     console.log("-----complete----------");
     console.log(res);
   }
  })

   wx.getBluetoothDevices({
    success: function(res){
     // success
     //{devices: Array[11], errMsg: "getBluetoothDevices:ok"}
     console.log("getBluetoothDevices");
     console.log(res);
     that.setData({
     list:res.devices
     });
     console.log(that.data.list);
    },
    fail: function(res) {
     // fail
    },
    complete: function(res) {
     // complete
    }
   })

 },
 onShow:function(){


 },
  //點擊事件處理
 bindViewTap: function(e) {
   console.log(e.currentTarget.dataset.title);
   console.log(e.currentTarget.dataset.name);
   console.log(e.currentTarget.dataset.advertisData);

  var title = e.currentTarget.dataset.title;
  var name = e.currentTarget.dataset.name;
   wx.redirectTo({
    url: '../conn/conn?deviceId='+title+'&name='+name,
    success: function(res){
     // success
    },
    fail: function(res) {
     // fail
    },
    complete: function(res) {
     // complete
    }
   })
 },
})

4.2連接 獲取數據

/**
 * 連接設備。獲取數據
 */
Page({
  data: {
    motto: 'Hello World',
    userInfo: {},
    deviceId: '',
    name: '',
    serviceId: '',
    services: [],
    cd20: '',
    cd01: '',
    cd02: '',
    cd03: '',
    cd04: '',
    characteristics20: null,
    characteristics01: null,
    characteristics02: null,
    characteristics03: null,
    characteristics04: null,
    result,

  },
  onLoad: function (opt) {
    var that = this;
    console.log("onLoad");
    console.log('deviceId=' + opt.deviceId);
    console.log('name=' + opt.name);
    that.setData({ deviceId: opt.deviceId });
    /**
     * 監聽設備的連接狀態
     */
    wx.onBLEConnectionStateChanged(function (res) {
      console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
    })
    /**
     * 連接設備
     */
    wx.createBLEConnection({
      deviceId: that.data.deviceId,
      success: function (res) {
        // success
        console.log(res);
        /**
         * 連接成功,后開始獲取設備的服務列表
         */
        wx.getBLEDeviceServices({
          // 這里的 deviceId 需要在上面的 getBluetoothDevices中獲取
          deviceId: that.data.deviceId,
          success: function (res) {
            console.log('device services:', res.services)
            that.setData({ services: res.services });
            console.log('device services:', that.data.services[1].uuid);
            that.setData({ serviceId: that.data.services[1].uuid });
            console.log('--------------------------------------');
            console.log('device設備的id:', that.data.deviceId);
            console.log('device設備的服務id:', that.data.serviceId);
            /**
             * 延遲3秒,根據服務獲取特征 
             */
            setTimeout(function () {
              wx.getBLEDeviceCharacteristics({
                // 這里的 deviceId 需要在上面的 getBluetoothDevices
                deviceId: that.data.deviceId,
                // 這里的 serviceId 需要在上面的 getBLEDeviceServices 接口中獲取
                serviceId: that.data.serviceId,
                success: function (res) {
                  console.log('000000000000' + that.data.serviceId);
                  console.log('device getBLEDeviceCharacteristics:', res.characteristics)
                  for (var i = 0; i < 5; i++) {
                    if (res.characteristics[i].uuid.indexOf("cd20") != -1) {
                      that.setData({
                        cd20: res.characteristics[i].uuid,
                        characteristics20: res.characteristics[i]
                      });
                    }
                    if (res.characteristics[i].uuid.indexOf("cd01") != -1) {
                      that.setData({
                        cd01: res.characteristics[i].uuid,
                        characteristics01: res.characteristics[i]
                      });
                    }
                    if (res.characteristics[i].uuid.indexOf("cd02") != -1) {
                      that.setData({
                        cd02: res.characteristics[i].uuid,
                        characteristics02: res.characteristics[i]
                      });
                    } if (res.characteristics[i].uuid.indexOf("cd03") != -1) {
                      that.setData({
                        cd03: res.characteristics[i].uuid,
                        characteristics03: res.characteristics[i]
                      });
                    }
                    if (res.characteristics[i].uuid.indexOf("cd04") != -1) {
                      that.setData({
                        cd04: res.characteristics[i].uuid,
                        characteristics04: res.characteristics[i]
                      });
                    }
                  }
                  console.log('cd01= ' + that.data.cd01 + 'cd02= ' + that.data.cd02 + 'cd03= ' + that.data.cd03 + 'cd04= ' + that.data.cd04 + 'cd20= ' + that.data.cd20);
                  /**
                   * 回調獲取 設備發過來的數據
                   */
                  wx.onBLECharacteristicValueChange(function (characteristic) {
                    console.log('characteristic value comed:', characteristic.value)
                    //{value: ArrayBuffer, deviceId: "D8:00:D2:4F:24:17", serviceId: "ba11f08c-5f14-0b0d-1080-007cbe238851-0x600000460240", characteristicId: "0000cd04-0000-1000-8000-00805f9b34fb-0x60800069fb80"}
                    /**
                     * 監聽cd04cd04中的結果
                     */
                    if (characteristic.characteristicId.indexOf("cd01") != -1) {
                      const result = characteristic.value;
                      const hex = that.buf2hex(result);
                      console.log(hex);
                    }
                    if (characteristic.characteristicId.indexOf("cd04") != -1) {
                      const result = characteristic.value;
                      const hex = that.buf2hex(result);
                      console.log(hex);
                      that.setData({ result: hex });
                    }

                  })
                  /**
                   * 順序開發設備特征notifiy
                   */
                  wx.notifyBLECharacteristicValueChanged({
                    deviceId: that.data.deviceId,
                    serviceId: that.data.serviceId,
                    characteristicId: that.data.cd01,
                    state: true,
                    success: function (res) {
                      // success
                      console.log('notifyBLECharacteristicValueChanged success', res);
                    },
                    fail: function (res) {
                      // fail
                    },
                    complete: function (res) {
                      // complete
                    }
                  })
                  wx.notifyBLECharacteristicValueChanged({
                    deviceId: that.data.deviceId,
                    serviceId: that.data.serviceId,
                    characteristicId: that.data.cd02,
                    state: true,
                    success: function (res) {
                      // success
                      console.log('notifyBLECharacteristicValueChanged success', res);
                    },
                    fail: function (res) {
                      // fail
                    },
                    complete: function (res) {
                      // complete
                    }
                  })
                  wx.notifyBLECharacteristicValueChanged({
                    deviceId: that.data.deviceId,
                    serviceId: that.data.serviceId,
                    characteristicId: that.data.cd03,
                    state: true,
                    success: function (res) {
                      // success
                      console.log('notifyBLECharacteristicValueChanged success', res);
                    },
                    fail: function (res) {
                      // fail
                    },
                    complete: function (res) {
                      // complete
                    }
                  })

                  wx.notifyBLECharacteristicValueChanged({
                    // 啟用 notify 功能
                    // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
                    deviceId: that.data.deviceId,
                    serviceId: that.data.serviceId,
                    characteristicId: that.data.cd04,
                    state: true,
                    success: function (res) {
                      console.log('notifyBLECharacteristicValueChanged success', res)
                    }
                  })

                }, fail: function (res) {
                  console.log(res);
                }
              })
            }
              , 1500);
          }
        })
      },
      fail: function (res) {
        // fail
      },
      complete: function (res) {
        // complete
      }
    })
  },

  /**
   * 發送 數據到設備中
   */
  bindViewTap: function () {
    var that = this;
    var hex = 'AA5504B10000B5'
    var typedArray = new Uint8Array(hex.match(/[\da-f]{2}/gi).map(function (h) {
      return parseInt(h, 16)
    }))
    console.log(typedArray)
    console.log([0xAA, 0x55, 0x04, 0xB1, 0x00, 0x00, 0xB5])
    var buffer1 = typedArray.buffer
    console.log(buffer1)
    wx.writeBLECharacteristicValue({
      deviceId: that.data.deviceId,
      serviceId: that.data.serviceId,
      characteristicId: that.data.cd20,
      value: buffer1,
      success: function (res) {
        // success
        console.log("success 指令發送成功");
        console.log(res);
      },
      fail: function (res) {
        // fail
        console.log(res);
      },
      complete: function (res) {
        // complete
      }
    })

  },
  /**
   * ArrayBuffer 轉換為 Hex
   */
  buf2hex: function (buffer) { // buffer is an ArrayBuffer
    return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
  }
})

5.效果展示

微信小程序如何實現藍牙的實例分享

發送校驗指令。獲取結果

微信小程序如何實現藍牙的實例分享

以上就是微信小程序如何實現藍牙的實例分享的詳細內容,更多請關注php中文網其它相關文章!


小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 成人亚洲视频在线观看| 亚洲一区二区在线视频观看| 老司机久久精品| 欧美xxxxx在线视频| 人妻少妇精品无码专区二区| www成人免费| 欧美成人精品免费| 久久久久久人妻一区二区三区| 91日韩精品视频| 图片区乱熟图片区亚洲| 99九九99九九九99九他书对| 国产一区二区在线观看免费视频| 少妇性l交大片| 日本888xxxx| 国产又爽又黄ai换脸| 熟女视频一区二区三区| 91精品国产毛片武则天| 人人妻人人添人人爽欧美一区| 免费在线黄网站| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 男人天堂a在线| 国产欧美日韩网站| 欧美国产日韩在线播放| 亚洲色图偷拍视频| 国产精品videossex国产高清| 国产精品视频网站在线观看| 国产极品在线视频| 99视频在线视频| 国产精品日韩三级| 国产熟人av一二三区| 欧美日韩理论片| 熟女少妇在线视频播放| 亚洲视频在线a| 国产日韩第一页| 日本免费一级视频| 黄色一级视频播放| 国产又粗又长又大的视频| 久久久久亚洲av无码专区喷水| 被灌满精子的波多野结衣| 人人干人人视频| 91社在线播放| 日本久久久久久久久久久久| 国产在线无码精品| 日本人69视频| 自拍偷拍 国产| 福利视频一二区| 福利网在线观看| 国产视频手机在线播放| 成人在线免费观看av| 久久久久亚洲av无码专区喷水| 91av在线免费播放| 国产二区视频在线| 特色特色大片在线| 在线免费看v片| 国产一区二区在线免费播放| 久久精品国产精品亚洲色婷婷| 99久热在线精品视频| 福利视频999| 天天干天天爽天天射| 男人操女人免费软件| 人妻av中文系列| 和岳每晚弄的高潮嗷嗷叫视频 | 黄色影视在线观看| 国产精品探花在线播放| 成年网站在线播放| 欧美精品性生活| 91国产精品视频在线观看| 国产xxxxx视频| 天天爽天天爽夜夜爽| 亚洲狼人综合干| 伊人网在线综合| www激情五月| 国产精品无码电影在线观看| 中文字幕第三区| 日本成人在线不卡| 久久综合久久网| 2019日韩中文字幕mv| 男人添女人荫蒂免费视频| 丰满少妇大力进入| 女人扒开屁股爽桶30分钟| 欧美激情国产精品日韩| www欧美激情| 97精品国产97久久久久久粉红| 国产一级片91| 日本在线观看a| 性欧美1819| 黄黄视频在线观看| 欧美中日韩在线| 精品国产成人av在线免| 激情五月俺来也| 韩国黄色一级大片| 北条麻妃在线一区| aaa一级黄色片| 中文字幕无码精品亚洲资源网久久| 欧美爱爱视频免费看| 一级黄色香蕉视频| 久久艹这里只有精品| 欧美日韩二三区| 日本77777| ww国产内射精品后入国产| 亚洲综合欧美激情| 国产一区二区片| 九九九九九九九九| 欧美牲交a欧美牲交aⅴ免费下载| 国产视频1区2区3区| 免费不卡av在线| 天天干天天操天天玩| 2019日韩中文字幕mv| 欧美国产日韩另类 | 日本人视频jizz页码69| 久久最新免费视频| 韩国视频一区二区三区| 菠萝蜜视频在线观看入口| 日韩免费高清在线| 国产原创popny丨九色| 永久免费黄色片| 在线观看免费成人av| 很污的网站在线观看| 国产又大又长又粗又黄| 午夜欧美福利视频| 欧美一级视频免费看| 男人草女人视频| 欧洲美女和动交zoz0z| 少妇一级淫免费放| 精品久久久久久久无码| 日韩日韩日韩日韩日韩| 成人黄色片免费| 国产成人三级视频| 日本一区二区免费高清视频| 午夜宅男在线视频| 久久久精品麻豆| 国产性生交xxxxx免费| 欧美v在线观看| 日韩中文字幕在线视频观看| 成年人网站国产| 激情五月婷婷六月| 亚洲精品蜜桃久久久久久| 日本大胆人体视频| av免费看网址| 美女av免费在线观看| 欧美成人免费高清视频| 日本中文字幕片| 视频在线观看免费高清| 污污网站在线观看视频| 91高清国产视频| 日本一区二区免费高清视频| 日本xxx免费| 国产原创中文在线观看| 手机看片福利盒子久久| 黄色aaaaaa| 日韩精品在线观看av| 欧美精品一区免费| wwwwxxxx日韩| 黄色网络在线观看| 免费 成 人 黄 色| www日韩在线观看| 亚洲免费黄色录像| 国产 欧美 日韩 一区| 成人免费毛片网| 亚洲天堂网站在线| 成人免费播放器| 91制片厂毛片| 男女裸体影院高潮| 国产精彩免费视频| 欧美美女黄色网| 杨幂毛片午夜性生毛片 | 在线观看免费视频污| 可以看毛片的网址| 国产乱女淫av麻豆国产| 久久亚洲a v| 中文字幕第38页| 日日摸日日碰夜夜爽无码| 少妇黄色一级片| 亚洲美免无码中文字幕在线| 日日躁夜夜躁aaaabbbb| 国产免费黄色小视频| 2021狠狠干| 日本超碰在线观看| 久久久久久久久久久福利| 国产手机视频在线观看| 中文字幕第100页| 女人另类性混交zo| 欧美性猛交内射兽交老熟妇| 五月婷婷之综合激情| 欧美 日韩 亚洲 一区| 穿情趣内衣被c到高潮视频| 亚洲综合欧美激情| 激情六月丁香婷婷| 免费在线观看亚洲视频| 97碰在线视频| 欧美 日韩 国产精品| 潘金莲一级淫片aaaaa免费看| 亚洲综合激情视频| 污污的网站免费| 欧美三级午夜理伦三级富婆| 欧美两根一起进3p做受视频| 国产原创中文在线观看| 日韩小视频网站| 国产特级黄色大片| 阿v天堂2017|