可以结帖了,解决方法是echarts for weixin 这个包更换了版本,具体原因还不明确,希望官方大大可以深入研究下
echarts配置项使用visualMap导致小程序闪退,无任何提示?无关手机型号,均会闪退,基础库和开发者工具都是最新的,echarts版本是4.7.0 这是没有使用visualMap [图片] 这是使用了visualMap [图片] 这次的问题没有任何报错,使用了visualMap之后 只要切换到这个page 小程序就直接闪退。 小程序使用期间内存一直在520左右浮动。 日志已上传: 微信号:gyf19970422 时间:3.23 15:50 注:这个模块是我在上周功能全部实现调式完成之后就没管了,BUG是这周提交的时候出现的经过调式锁定在visualMap上
2020-03-24楼主你好,我遇到和你一样的问题,你可以看下你配置项有没有用到visualMap 这个组件。我遇到的问题是由这个组件引起的,目前没有找到解决办法。可交流
用echarts画地图,在开发者工具正常显示,真机预览也没有报错。不过地图加载不出来再加小程序闪退?在小程序开发中,功能需要就在小程序中调用echarts画了幅地图。在开发者工具里正常查看地图,一切正常。 开发者工具中的提示如下: [图片] 开发者工具效果图如下: [图片] 因为canvas不支持真机调试,所以我就用真机预览。真机预览在开发者工具上没有报错,也没有提示。 但在手机端,当小程序跳转到需要地图的页面时,页面能正常跳转。但页面加载不出地图,其他显示正常。而且小程序在跳转页面一会后就会闪退 真机预览效果图如下: [图片] 想不明白,也没有报错呀。怎么会加载不出地图,难道需要更新新的 canvas 2d 接口?? 还是怎么,求大神解答!为什么加载不出地图?为什么小程序会闪退?
2020-03-23使用的echarts 是支持canvas 2D 的,基础库是2.10.3
echarts 在编译和预览模式下正常,真机调试下出现错误?如题,真机调试下出现 HTMLCanvasView i[图片]s not defined 这个错误!
2020-03-19已解决,是指令格式的转换问题
wx.onBLECharacteristicValueCha 无回调,回调参数为undefined?我贴出代码,这个问题卡了快一周了很多办法都尝试了,还是不能解决。 问题前景:与蓝牙设备连接进行指令交互 /** * 连接低功耗蓝牙设备。 */ BLEConn: function() { const that = this; wx.createBLEConnection({ deviceId: that.data.deviceId, success: function(res) { console.log('createBLEConnection success'); wx.stopBluetoothDevicesDiscovery({ success: function(res) { console.log('stopBluetoothDevicesDiscovery success'); } }) that.getBLEDeviceServices(); that.data.connected = true; }, fail: function(res) { console.log('createBLEConnection fail'); } }) }, /** * 获取蓝牙设备所有服务(service) */ getBLEDeviceServices() { const that = this; wx.getBLEDeviceServices({ deviceId: that.data.deviceId, success: function(res) { console.log('getBLEDeviceServices success'); for (let i = 0; i < res.services.length; i++) { if (res.services[i].uuid.indexOf("BA11F08C") != -1) { that.setData({ serviceId : res.services[i].uuid, }) setTimeout( function() { that.getBLEDeviceCharacteristics(res.services[i].uuid); },1500); } } }, fail: function(res) { console.log('getBLEDeviceServices fail'); } }) }, /** * 获取蓝牙设备某个服务中所有特征值(characteristic) */ getBLEDeviceCharacteristics(serviceId) { const that = this; wx.getBLEDeviceCharacteristics({ deviceId: that.data.deviceId, serviceId: serviceId, success: function(res) { console.log('getBLEDeviceCharacteristics success'); let item = res.characteristics for (let i = 0; i < item.length; i++) { if (item[i].uuid.indexOf("CD01") != -1) { that.setData({ cd01 : item[i].uuid, }) } if (item[i].uuid.indexOf("CD02") != -1) { that.setData({ cd02: item[i].uuid, }) } if (item[i].uuid.indexOf("CD03") != -1) { that.setData({ cd03: item[i].uuid, }) } if (item[i].uuid.indexOf("CD04") != -1) { that.setData({ cd04: item[i].uuid, }) } if (item[i].properties.write && writeFlag) { that.data.writeCha = item[i].uuid; that.data.writeSer = serviceId; } } wx.onBLECharacteristicValueChange(function (msg) { if (msg.characteristicId.indexOf("CD01") != -1) { console.log(`蓝牙设备发送的指令:${ab2hex(msg.value)}`) console.log('----------------------') } if (msg.characteristicId.indexOf("CD04") != -1) { console.log(`蓝牙设备发送的数据:${ab2hex(msg.value)}`) console.log('----------------------') let temp = ab2hex(msg.value).slice(6, 10); console.log(`截取后的temp:${temp}`) if (that.data.temperature && temp.indexOf('0e') === 0) { console.log(`设备发送的数据转化为温度:${theTemperature(temp)}`); } } }) wx.notifyBLECharacteristicValueChange({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, characteristicId: that.data.cd01, state: true, success: function (res) { console.log(`${that.data.cd01}:notifyBLECharacteristicValueChange success`); }, fail: function (res) { console.log('notifyBLECharacteristicValueChange fail'); } }) wx.notifyBLECharacteristicValueChange({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, characteristicId: that.data.cd02, state: true, success: function (res) { console.log(`${that.data.cd02}:notifyBLECharacteristicValueChange success`); }, fail: function (res) { console.log('notifyBLECharacteristicValueChange fail'); } }) wx.notifyBLECharacteristicValueChange({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, characteristicId: that.data.cd03, state: true, success: function (res) { console.log(`${that.data.cd03}:notifyBLECharacteristicValueChange success`); }, fail: function (res) { console.log('notifyBLECharacteristicValueChange fail'); } }) wx.notifyBLECharacteristicValueChange({ deviceId: that.data.deviceId, serviceId: that.data.serviceId, characteristicId: that.data.cd04, state: true, success: function (res) { console.log(`${that.data.cd04}:notifyBLECharacteristicValueChange success`); }, fail: function (res) { console.log('notifyBLECharacteristicValueChange fail'); } }) }, fail: function(res) { console.log('getBLEDeviceCharacteristics fail '); } }) }, /** * 写操作 */ sendMsg:function () { const that = this let buffer = hexStringToArrayBuffer(that.data.sendStr); wx.writeBLECharacteristicValue({ deviceId: that.data.deviceId, serviceId: that.data.writeSer, characteristicId: that.data.writeCha, value: buffer, success: function (res) { console.log('writeBLEValue success', res.errMsg) console.log(`写入的数据:${ab2hex(buffer)}`) }, fail: function (res) { console.log('writeBLEValue fail', res.errMsg) } }) },
2020-03-11楼主,你好,我想请问下,当write api回调success时怎么去确认设备是否收到指令
小程序的蓝牙API 写入数据显示成功但实际对方并没有收到?给公司开发的一款蓝牙助手小程序,自己测试用的iphone6s plus,所有的功能都完美运行,但是到其他手机尤其是安卓机和高版本的iphone,向蓝牙设备写数据都显示成功,但实际上对方并没有收到,也无法做出响应。现在已知的iphone7、iphone8、iphoneXR、小米9、荣耀V9、荣耀V10都有这种情况,测试成功的有iphone6splus、华为P10 、小米5,不知道是什么原因,希望官方能帮助解惑 写入数据的代码,参数和arraybuffer转换函数都是测试过没问题的 /** * 向蓝牙发送数据 * @param {Object} dataArr * @param {Object} deviceId * @param {Object} serviceId * @param {Object} characteristicId */ const sendData=function(dataArr,deviceId,serviceId,characteristicId,callback){ // 数组转内存 let ab=this.arr2ab(dataArr),myRes={}; // 传数据到蓝牙设备 uni.writeBLECharacteristicValue({ deviceId:deviceId, serviceId:serviceId, characteristicId:characteristicId, value:ab, success:function(res){ // console.log('数据写入成功') myRes={code:0,msg:dataArr[0]+'数据写入成功'}, callback(myRes) }, fail:function(res){ myRes={code:1,msg:dataArr[0]+'数据写入失败'}, callback(myRes) } }) } 补充一下,开发用的是uni-app
2020-03-09