- 微信更新后wx.getSystemInfo获取screenWidth为0
微信更新后wx.getSystemInfo获取screenWidth 和screenHeight 为0 [图片]
2017-12-18 - camera 组件在iphone5上无法hidden,安卓手机可以
<camera id="myCamera" class="camera" style="display:{{cameraDisplay}};height:{{cameraHeight}}px" device-position="back" flash="auto" > <cover-view class="container" style="height:{{cameraHeight}}px"> <cover-view class="pause" bindtap="pause"> <cover-image class="img" src="../../images/icon.png" /> </cover-view> </cover-view> </camera> ------------------------------------------------------------------------------------------- const cameraContext = wx.createCameraContext('myCamera'); Page({ data:{ cameraDisplay: 'block', cameraHeight:1000, }, pause:function(){ let that = this; that.setData({ cameraDisplay: 'none', cameraHeight:0, }); cameraContext.takePhoto({ success: function (res) { console.log(res); }, }) })
2017-11-08 - (附上测试代码与图片)BLE蓝牙断开后重新连接收到多个相同数据包
之前反应过这个问题,但是没有人回应,以为是蓝牙有问题,买了新的ble蓝牙模块,通过串口连接到电脑测试,断开之后再连接收到多个数据包,下面是测试的代码和测试的图片,希望得到帮助! 代码: Page({ data: { deviceId: '', serviceId: '', charId: '', devicecon: [], }, onLoad: function() { var that = this; wx.openBluetoothAdapter({ success: function(res) { wx.getBluetoothAdapterState({ success: function(res) { wx.startBluetoothDevicesDiscovery({ success: function(res) { wx.getBluetoothDevices({ success: function(res) { for (var i = 0; i < res.devices.length; i++) { that.data.devicecon.push(res.devices[i]['deviceId']); } wx.onBluetoothDeviceFound(function(devices) { for (var i = 0; i < devices.devices.length; i++) { that.data.devicecon.push(devices.devices[i]['deviceId']); } that.setData({ devicecon: that.data.devicecon, }); console.log(that.data.devicecon); }) } }) } }) } }) } }) wx.onBLEConnectionStateChange(function(res) { if (!res.connected) { console.log('已经断开了'); } }) //特征值改变 wx.onBLECharacteristicValueChange(function (res) { var buf = (res.value.byteLength); console.log("我真的只发送一次"); console.log(buf); console.log("我真的只发送一次"); }) }, linkbluetooth:function(e){ var that = this; that.data.deviceId = e.currentTarget.dataset.value; wx.createBLEConnection({ deviceId: that.data.deviceId, success: function (res) { console.log('经连接成功了!') wx.getBLEDeviceServices({ deviceId: that.data.deviceId, success: function (res) { for(var i=0;i<res.services.length;i++){ if(res.services[i]['uuid'].indexOf('ffe0') != -1){ that.data.serviceId = res.services[i]['uuid']; } } //获取特征值 if(that.data.serviceId){ setTimeout(function () { wx.getBLEDeviceCharacteristics({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, success: function (res) { for(var i=0;i<res.characteristics.length;i++){ if (res.characteristics[i]['uuid'].indexOf('ffe1')!=-1){ that.data.charId = res.characteristics[i]['uuid']; } } wx.notifyBLECharacteristicValueChange({ state: true, // 启用 notify 功能 // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取 deviceId: that.data.deviceId, // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取 serviceId: that.data.serviceId, // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取 characteristicId: that.data.charId, success: function (res) { console.log('notifyBLECharacteristicValueChange success', res.errMsg) } }); console.log(that.data.charId); that.writecomm(); } }) }, 2000); } } }) } }) }, writecomm:function(){ var that = this; let buffer = new ArrayBuffer(1) let dataView = new DataView(buffer) dataView.setUint8(0,99); wx.writeBLECharacteristicValue({ // 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取 deviceId: that.data.deviceId, // 这里的 serviceId 需要在上面的 getBLEDeviceServices 接口中获取 serviceId: that.data.serviceId, // 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取 characteristicId: that.data.charId, // 这里的value是ArrayBuffer类型 value: buffer, success: function (res) { console.log('writeBLECharacteristicValue success', res.errMsg) } } )} [图片] 串口已经连接到了蓝牙模块,最后一行R:0是电脑接收到的字节,S:0是发送的给蓝牙的字节,刚开始都是0 [图片] 连接到了蓝牙 [图片] 此时,串口收到了1个字节的数据,为代码中10进制的 99,就是16进制的63 [图片] 通过串口发送一个字节的数字给蓝牙模块 [图片] 此时 接收 和发送的数据都是1 完全是没有问题的, 但是在蓝牙模块意外中断之后,问题就来了(图片太大了,不能超过5M,只能缩小一下图片了) [图片] 拔掉蓝牙电源线,通信中断了 [图片] 蓝牙断开之后重新接电,连接蓝牙 [图片] 再次连接成功 [图片] 收到了有收到了第二个63 ,再发送一个31给蓝牙, 监听特征值缺收到了2个数据包 加第一次的数据包一共是3个。 [图片] 而且你断开n次,重新连接之后你就可以收到n+1个数据包。用 wx.closeBluetoothAdapter(OBJECT)断开资源,重新连接,依然是收到两个数据包,除非退出小程序重新进入,或者关闭手机蓝牙再次打开。
2017-06-13 - wx.readBLECharacteristicValue收到多个一样的数据包
用wx.writeBLECharacteristicValue写入特征值成功,写入的指令只有一条,第一次可以读出准确的数据,当蓝牙中断之后,尝试重新连接原来的蓝牙,连接成功后,再次发一条指令,却会返回2个一模一样的数据包,中断多少次就返回多个一样的数据包,尝试断开蓝牙模块电源,连接之后还是返回多个数据包,只有在关掉手机蓝牙再开启之后才能返回正常的数据,重新启动小程序也可以获取到正常数据,尝试用wx.closeBluetoothAdapter(OBJECT)也不能解决问题
2017-06-07