没有监听 传入值吧
页面setData无法触发子组件更新- 需求的场景描述(希望解决的问题) 自定义了一个模态框组件,组件渲染在页面onLoad之前,我在onLoad中setData,无法触发自定义组件的更新 - 希望提供的能力
2019-04-26官方的人呢??
wx.writeBLECharacteristicValue返回成功,打印机不打- 当前 Bug 的表现(可附上截图) [图片] 代码: //index.js //获取应用实例 const app = getApp() Page({ data: { userInfo: {}, hasUserInfo: false, canIUse: wx.canIUse('button.open-type.getUserInfo'), devices: [], deviceId: '', services: [], serviceId: '', characteristicId: '', characteristicIdNotify: '', characteristicIdRead: '', }, onLoad() { // wx.showModal({ // title: '提示', // content: '请检查手机蓝牙是否打开', // success: function (res) { // that.setData({ // isbluetoothready: false, // searchingstatus: false // }) // } // }) }, /** * @description 开启蓝牙适配器 */ openBlue() { let _this = this wx.openBluetoothAdapter({ success(res) { console.log('开启适配器:', res) // 搜索蓝牙设备 _this.discoverDevices() } }) }, closeBlue() { wx.closeBluetoothAdapter({ success(res) { console.log('关闭适配器: ', res) } }) }, /** * @description 搜索蓝牙设备 */ discoverDevices() { let _this = this wx.startBluetoothDevicesDiscovery({ success(res) { console.log('搜索完成', res) setTimeout(() => { _this.getDevices() setTimeout(() => { _this.foundDevices() }, 500) }, 500) } }) }, /** * @description 搜索新的蓝牙设备 */ foundDevices() { let _this = this wx.onBluetoothDeviceFound(function (devices) { console.log('检测到新设备:', devices) // 检测到新设备后,更新设备列表,供选择 _this.data.devices.push(devices.devices[0]) _this.setData({ devices: _this.data.devices }) }) }, /** * @description 获取可连接的蓝牙设备 */ getDevices() { let _this = this wx.getBluetoothDevices({ success: function (res) { if (res.devices[0]) { console.log('获取设备:', res) _this.setData({ devices: res.devices }) } } }) }, chooseDevice(e) { let _this = this // 储存 deviceId _this.data.deviceId = e.currentTarget.dataset.deviceid // 连接设备 _this.createConnect(_this.data.deviceId) // console.log('_this.data.deviceId: ',_this.data.deviceId) }, createConnect(deviceId) { let _this = this wx.createBLEConnection({ // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接 deviceId, success(res) { // 连接成功 console.log('连接设备成功:', res) // 获取 serviceId _this.getServices(deviceId) // 监听连接状态 _this.onConnectionStatus() // 停止搜索 _this.stopDiscoverDevices() }, fail(err) { console.warn('err :', err); } }) }, onConnectionStatus() { wx.onBLEConnectionStateChange(function (res) { // 该方法回调中可以用于处理连接意外断开等异常情况 console.log(`设备 ${res.deviceId} 连接状态变化, 连接状态: ${res.connected}`) }) }, /** * @description 获取已连接的蓝牙设备 */ getConnectDevices(services) { wx.getConnectedBluetoothDevices({ services, success(res) { console.log('已连接的设备:' + JSON.stringify(res)) }, fail(err) { console.log('err: ', err.errMsg) } }) }, /** * @description 停止搜索蓝牙设备 */ stopDiscoverDevices() { wx.stopBluetoothDevicesDiscovery({ success(res) { console.log('成功链接设备,停止搜索。') } }) }, /** * @description 获得 services & serviceId */ getServices(deviceId) { let _this = this wx.getBLEDeviceServices({ deviceId, success(res) { console.log('device services:', res.services) _this.getConnectDevices([res.services[2].uuid]) // 获取 serviceId _this.setData({ serviceId: res.services[2].uuid }) console.log('_this.serviceId :', _this.data.serviceId); _this.getCharacteristicsId(_this.data.deviceId, _this.data.serviceId) } }) }, /** * @description 获得 CharacteristicsId */ getCharacteristicsId(deviceId, serviceId) { let _this = this wx.getBLEDeviceCharacteristics({ deviceId, serviceId, success(res) { console.log('Characteristics:', res.characteristics) // 设置 characteristicId、characteristicIdNotify _this.setData({ characteristicIdNotify: res.characteristics[0].uuid, characteristicId: res.characteristics[0].uuid, }) _this.openNotify(deviceId, serviceId, _this.data.characteristicIdNotify) console.log('CharacteristicsId:', res.characteristics[0].uuid) } }) }, /** * @description 开启 notify */ openNotify(deviceId, serviceId, characteristicId) { let _this = this wx.notifyBLECharacteristicValueChange({ state: true, deviceId, serviceId, characteristicId, success(res) { console.log('notify 开启成功', res.errMsg) setTimeout(() => { _this.writeDevice(deviceId, serviceId, _this.data.characteristicId) }, 2000) }, fail(err) { console.log('openNotify err: ', err) } }) }, /** * @description 向设备写入数据 */ writeDevice(deviceId, serviceId, characteristicId) { let _this = this // 向蓝牙设备发送一个0x00的16进制数据 let senddata = 'test' let buffer = new ArrayBuffer(senddata.length) let dataView = new DataView(buffer) for (var i = 0; i < senddata.length; i++) { dataView.setUint8(i, senddata.charAt(i).charCodeAt()) } // let buffer = new ArrayBuffer(2) // let dataView = new DataView(buffer) // dataView.setUint16(0, 3) wx.writeBLECharacteristicValue({ deviceId, serviceId, characteristicId, value: buffer, success(res) { console.log('写入数据成功', res.errMsg) _this.readDevice(deviceId, serviceId, _this.data.characteristicId) }, fail(err) { console.log('err', err) }, complete() { _this.closeConnection(deviceId) _this.closeBlue() } }) }, readDevice(deviceId, serviceId, characteristicId) { let _this = this // 必须在这里的回调才能获取 wx.onBLECharacteristicValueChange(function (characteristic) { console.log('characteristic value comed:', characteristic) }) wx.readBLECharacteristicValue({ // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接 deviceId, // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取 serviceId, // 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取 characteristicId, success(res) { console.log('readBLECharacteristicValue:', res.errCode) } }) }, closeConnection(deviceId) { wx.closeBLEConnection({ deviceId, success(res) { console.log('关闭设备连接:', res) } }) } }) - 提供一个最简复现 Demo https://developers.weixin.qq.com/s/izuwUrmK784V
2019-01-16我现在只测试了iphone6 . 连接是成功的,数据只有3个字节,
wx.writeBLECharacteristicValue没有回调- 当前 Bug 的表现(可附上截图) wx.writeBLECharacteristicValue 没有回调 - 提供一个最简复现 Demo 代码片段 https://developers.weixin.qq.com/s/izuwUrmK784V
2019-01-15解决了没?? 我也遇到了,设备的特征值支持 write
iOS调用蓝牙BLE无回调iOS 版本:11.3 机型: iphone6 调用wx.writeBLECharacteristicValue有几率无任何回调,(确保写入字节仅2-4,没有超过20) 调用wx.notifyBLECharacteristicValueChange有几率无任何回调 - 预期表现 调用wx.writeBLECharacteristicValue、wx.notifyBLECharacteristicValueChange 能触发回调 - 复现路径 - 提供一个最简复现 Demo
2019-01-15同求
连接蓝牙打印机,全部返回正常,打印机无反应,用另一个小程可以正常打印- 需求描述 实现小程序连蓝牙打印机,打印小票;(同一台打印机,以通过其他小程序实现此功能) - 当前 Bug 的表现(可附上截图) 蓝牙API 调用全部返回 success ,但打印机无反应。 [图片] - 预期表现 - 复现路径 - 提供一个最简复现 Demo 以下是代码片段:https://developers.weixin.qq.com/s/izuwUrmK784V
2019-01-10解决了没?? 急需
小程序蓝牙连接小票打印机打印不出来小程序调用蓝牙接口返回的东西都是success,然后就是死活打印不出来,我用的是那种打印快递面单的打印机,问题还有可能出现在哪里
2019-01-10作者问题解决了没?
已经有管理员,但仍提示你尚未绑定任何开发者,请先绑定开发者已经绑定了管理员,管理员登录发布代码,仍提示你尚未绑定任何开发者,请先绑定开发者[图片] [图片]
2018-06-22