全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[国内靠谱的SEO推广公司]微信小程序如何实现蓝牙的实例分享

  这篇文章主要介绍了微信小程序 蓝牙的实现实例代码的相关资料,需要的朋友可以参考下

  微信小程序 蓝牙的实现实例代码

  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连接 获取数据

  

/**
 * 连接设备。[国内靠谱的SEO推广公司]获取数据
 */
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◆▪.效果展示

  发送校验指令。获取结果

  以上就是微信小程序如何实现蓝牙的实例分享的详细内容,葫芦岛市小程序制作公司[兰州seo公司排名]Redis RDB方式数据备份与恢复【详解】,更多请关注久澳传媒编程栏目其它相关文章!

[国内靠谱的SEO推广公司]微信小程序如何实现蓝牙的实例分享

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。