- wx.createBLEConnection报错,连接失败,怎么回事?
调用这个api wx.createBLEConnection报错:errno: 101, errCode: 10013, errMsg: "createBLEConnection:fail:invalid data"这是什么情况导致的? deviceId值一直就有。客户老是反应打印失败 代码如下:new Promise((resolve, reject) => { console.log("打印机ID:"); console.log(that.data.KBJSON.DYJID); wx.createBLEConnection({ deviceId: that.data.KBJSON.DYJID, success: function (res) { wx.vibrateShort(); //手机震动 resolve(res); }, fail: function (res) { console.log(res); billcommon.HideLoad(); Promise.break; } }) })
2024-02-03 - 微信小程序BLE蓝牙模块断开后无法再次搜索到原来的蓝牙
微信小程序在因为需要,需要中间断开蓝牙连接,然后想再次连接原来的蓝牙,发现无论多久都搜索不到原来的蓝牙。 造成这个的原因主要有以下两个原因 蓝牙未断开连接,重新搜索时需要先调用wx.closeBLEConnection,将原先的连接中断。为确保中断完全正常,最好在complete的回调函数中做其他的操作。已经调用wx.closeBLEConnection中断蓝牙,还是会有相关的问题,因为在完成closeBLEConnection之后还需要再调用一下closeBluetoothAdapter 去关闭蓝牙模块,然后重新扫描才能扫描的到。
2024-05-21 - 调用wx.openBluetoothAdapter在部分机型上出现失败,并导致页面不断刷新重载
调用wx.openBluetoothAdapter在部分机型(如真我GT5)上出现失败,提示openBluetoothAdapter: fail:system permission,并导致页面不断刷新重载 手机蓝牙已打开,用户已授权小程序的蓝牙使用 [图片]
2024-07-09 - openBluetoothAdapter华为鸿蒙系统手机接口报错蓝牙功能无法使用
wx.openBluetoothAdapter 华为鸿蒙系统手机报错信息system permission denied,这两天出现很多用户反馈 [图片][图片]
2024-07-08 - wx.openBluetoothAdapter只用开发者的账号能成功调用,别的普通用户调用都失败?
小程序的蓝牙功能wx.openBluetoothAdapter非开发者账号调用失败,提示“手机蓝牙功能没有打开,请到设置里打开蓝牙功能!”,手机和微信的蓝牙设置的正常。这是为什么? openBluetoothAdapter() { wx.openBluetoothAdapter({ success: (res) => { //console.log('openBluetoothAdapter success', res); setTimeout(this.startBluetoothDevicesDiscovery, 100); }, fail: (res) => { //console.log('openBluetoothAdapter fail', res); wx.showModal({ // title: '上报成功', // content: '亲爱的用户,我们已经收到您的上报信息,我们将安排人员检修,一经核实,我们将电话联系您进行酬谢', title: '注意', content: '手机蓝牙功能没有打开,请到设置里打开蓝牙功能!',
2024-10-08 - 小程序app.onLaunch与page.onLoad异步问题的最佳实践
场景: 在小程序中大家应该都有这样的场景,在onLaunch里用wx.login静默登录拿到code,再用code去发送请求获取token、用户信息等,整个过程都是异步的,然后我们在业务页面里onLoad去用的时候异步请求还没回来,导致没拿到想要的数据,以往要么监听是否拿到,要么自己封装一套回调,总之都挺麻烦,每个页面都要写一堆无关当前页面的逻辑。 直接上终极解决方案,公司内部已接入两年很稳定: 1.可完美解决异步问题 2.不污染原生生命周期,与onLoad等钩子共存 3.使用方便 4.可灵活定制异步钩子 5.采用监听模式实现,接入无需修改以前相关逻辑 6.支持各种小程序和vue架构 。。。 //为了简洁明了的展示使用场景,以下有部分是伪代码,请勿直接粘贴使用,具体使用代码看Github文档 //app.js //globalData提出来声明 let globalData = { // 是否已拿到token token: '', // 用户信息 userInfo: { userId: '', head: '' } } //注册自定义钩子 import CustomHook from 'spa-custom-hooks'; CustomHook.install({ 'Login':{ name:'Login', watchKey: 'token', onUpdate(token){ //有token则触发此钩子 return !!token; } }, 'User':{ name:'User', watchKey: 'userInfo', onUpdate(user){ //获取到userinfo里的userId则触发此钩子 return !!user.userId; } } }, globalData) // 正常走初始化逻辑 App({ globalData, onLaunch() { //发起异步登录拿token login((token)=>{ this.globalData.token = token //使用token拿用户信息 getUser((user)=>{ this.globalData.user = user }) }) } }) //关键点来了 //Page.js,业务页面使用 Page({ onLoadLogin() { //拿到token啦,可以使用token发起请求了 const token = getApp().globalData.token }, onLoadUser() { //拿到用户信息啦 const userInfo = getApp().globalData.userInfo }, onReadyUser() { //页面初次渲染完毕 && 拿到用户信息,可以把头像渲染在canvas上面啦 const userInfo = getApp().globalData.userInfo // 获取canvas上下文 const ctx = getCanvasContext2d() ctx.drawImage(userInfo.head,0,0,100,100) }, onShowUser() { //页面每次显示 && 拿到用户信息,我要在页面每次显示的时候根据userInfo走不同的逻辑 const userInfo = getApp().globalData.userInfo switch(userInfo.sex){ case 0: // 走女生逻辑 break case 1: // 走男生逻辑 break } } }) 具体文档和Demo见↓ Github:https://github.com/1977474741/spa-custom-hooks 祝大家用的愉快,记得star哦
2023-04-23