在线看毛片视频-国产免费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>
  • 国产91美女视频| 污污网站免费观看| 天天干天天玩天天操| 日韩一级片一区二区| 五月天激情视频在线观看| 大西瓜av在线| 手机在线观看日韩av| 国产九九热视频| 日本精品久久久久中文字幕| 国产曰肥老太婆无遮挡| dy888午夜| 久久久九九九热| 99sesese| 三日本三级少妇三级99| 日韩高清第一页| 中文字幕欧美人妻精品一区| 亚洲熟妇av日韩熟妇在线| 日韩成人三级视频| 色哟哟免费网站| 女同性恋一区二区| 四虎影院一区二区| 久久久一二三四| 欧美另类videos| 欧美视频在线第一页| 妞干网在线播放| 日韩视频免费播放| 男人操女人逼免费视频| 欧美性大战久久久久xxx| 18禁男女爽爽爽午夜网站免费| 无码精品a∨在线观看中文| 免费在线观看亚洲视频 | 僵尸世界大战2 在线播放| 久久最新免费视频| 野外做受又硬又粗又大视频√| 青青草视频在线视频| www.一区二区.com| 男人的天堂狠狠干| 成年人在线观看视频免费| 国产成人在线综合| 亚洲第一页在线视频| 黄色成人在线免费观看| 国产精品国产亚洲精品看不卡| 亚洲精品无码久久久久久| 天堂社区在线视频| 免费看啪啪网站| www在线观看免费| 亚洲视频在线观看一区二区三区| 一女二男3p波多野结衣| 亚洲av综合色区| 国产精品亚洲αv天堂无码| www.欧美日本| 亚洲天堂第一区| 国产成人精品视频免费看| 一区二区久久精品| 777精品久无码人妻蜜桃| 日韩欧美亚洲另类| 国产九九九九九| 手机av在线网站| 情侣黄网站免费看| 成年在线观看视频| 青青在线免费观看视频| 中文字幕av久久| 天天插天天操天天射| 久久在线中文字幕| 天天看片天天操| 欧美日韩在线视频一区二区三区| 中文字幕免费高| 8x8x最新地址| 国产91对白刺激露脸在线观看| 久久精品国产精品亚洲精品色 | 欧美无砖专区免费| 久久久久久久久久毛片| 欧美 国产 日本| 欧美亚洲色图视频| 国产在线拍揄自揄拍无码| 最新av免费在线观看| 无码人妻h动漫| 国产v片免费观看| www.亚洲成人网| 秋霞在线一区二区| 一区二区三区四区毛片| caoporn超碰97| 免费观看成人网| 男人天堂999| 九色在线视频观看| 精品无码一区二区三区在线| 日本一级黄视频| 女人床在线观看| 男人的天堂视频在线| 中文字幕免费高| 五月天激情图片| 乱熟女高潮一区二区在线| 国产91av视频在线观看| 免费不卡av网站| 中文字幕乱码免费| 青青在线视频免费观看| 女同性恋一区二区| 国产911在线观看| 人体内射精一区二区三区| 国自产拍偷拍精品啪啪一区二区| 给我免费播放片在线观看| 少妇无码av无码专区在线观看| 国产 日韩 欧美在线| 日日摸日日碰夜夜爽av| 白嫩少妇丰满一区二区| 最新国产黄色网址| 亚洲成人手机在线观看| 999久久久精品视频| 日韩av片在线看| 国产福利视频在线播放| 干日本少妇首页| 日本老熟妇毛茸茸| 狠狠操狠狠干视频| 黄色一级片网址| 日产精品久久久久久久蜜臀| www.av片| 性欧美videossex精品| 做a视频在线观看| 国产精品一色哟哟| 欧美性猛交xxx乱久交| 亚洲热在线视频| 男女视频网站在线观看| 日本在线观看免费视频| 国产麻豆电影在线观看| 91视频最新入口| 污污的视频免费观看| 日韩伦理在线免费观看| 欧美午夜aaaaaa免费视频| www国产无套内射com| 日韩中文字幕免费在线| 永久免费在线看片视频| 成人免费毛片播放| 青青在线视频免费观看| 天天干在线影院| 国产a级片网站| eeuss中文| 尤蜜粉嫩av国产一区二区三区| 熟女熟妇伦久久影院毛片一区二区| 男人日女人下面视频| 精品国产一区二区三区在线| 欧美少妇性生活视频| 青草视频在线观看视频| 午夜不卡福利视频| 污污视频网站免费观看| 成人一区二区免费视频| 欧美少妇在线观看| 天天操狠狠操夜夜操| 国产高清精品在线观看| 性高湖久久久久久久久aaaaa| 亚洲精品免费一区亚洲精品免费精品一区 | 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 黄色片免费在线观看视频| 亚洲精品综合在线观看| 亚洲中文字幕久久精品无码喷水| 亚洲色成人www永久在线观看| 欧美大片久久久| 九九热免费在线观看| 国产成人无码av在线播放dvd| 亚洲中文字幕无码av永久| 黑人巨茎大战欧美白妇 | 欧美精品久久96人妻无码| 狠狠干狠狠操视频| 日本黄色福利视频| 久久婷婷国产91天堂综合精品| 国产男女在线观看| 播放灌醉水嫩大学生国内精品| 日韩亚洲欧美视频| 秋霞无码一区二区| 欧美亚洲一二三区| 69堂免费视频| 农村妇女精品一二区| 毛葺葺老太做受视频| 亚洲黄色av网址| 国产视频1区2区3区| 手机精品视频在线| 欧美少妇一级片| 特级西西人体www高清大胆| 男女啪啪免费观看| 国精产品一区一区三区视频| 一二三四视频社区在线| 国产天堂在线播放| 亚洲精品国产一区二区三区| 国产精品h视频| 国产在线精品91| 日本熟妇人妻中出| 手机福利在线视频| 国产精品一区二区免费在线观看| 久久精品香蕉视频| 欧美视频亚洲图片| 很污的网站在线观看| 欧美日韩大尺度| 成人性做爰片免费视频| 国产深夜男女无套内射| 日本不卡一区在线| 日本a在线天堂| 国产a级片免费观看| 亚洲免费av网| 免费在线观看的毛片| 超碰在线免费观看97| 妞干网在线免费视频|