- 以下机型访问蓝牙4.0设备报以下错误
以下机型访问蓝牙4.0设备容易出现错误: EVA-AL10VIE-AL10EVA-AL00VTR-AL00LON-AL00MHA-AL00 描述详情:以上机型基于微信小程序蓝牙API创建链接,容易发生无法创建链接的错误。而且是一旦出现创建链接失败以后,就无法再次创建链接了(通过wx.startBluetoothDevicesDiscovery是可以找的到蓝牙设备),微信蓝牙API链接出错后我们再试着用原生的APP去链接发现也无法创建链接。通过抓包提示此错误:E/bt_btif: bta_gattc_cache_load: can´t open GATT cache file /data/misc/bluetooth/gatt_cache_9c1d589125ed for reading, error: Permission denied 特点:其他Android机型目前还没有出现此错误,这这款华为就容易出现此错误,用着用着就会出现,也无规律可言,只是很容易出现此错误!
2017-07-27 - Android手机animation动画卡顿问题
部分Android手机在小程序里运行动画会卡顿,但是在把同样的css代码转化成html然后在微信里面运行却很流畅。想问下:小程序执行动画的内核是什么?为什么会有这种现象。机型如下:OPPO R9m,微信版本6.5.10 动画详细代码如下: [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"mod-scanning ui-detail"[代码][代码]>[代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"ui-round"[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"round round-1"[代码][代码]></[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"round round-2"[代码][代码]></[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"round round-3"[代码][代码]></[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"round round-4"[代码][代码]></[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]<!-- <view class="round round-5"></view> -->[代码][代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"ibase ibase-blue1"[代码][代码]></[代码][代码]view[代码][代码]>[代码][代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码]@keyframes bounce {[代码][代码] [代码][代码]0%[代码] [代码]{[代码][代码] [代码][代码]transform: scale([代码][代码]1[代码][代码]);[代码][代码] [代码][代码]opacity: [代码][代码]1[代码][代码];[代码][代码] [代码][代码]}[代码][代码] [代码][代码]100%[代码] [代码]{[代码][代码] [代码][代码]transform: scale([代码][代码]3.4[代码][代码]);[代码][代码] [代码][代码]opacity: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]}[代码][代码]}[代码] [代码].mod-scanning .ui-round {[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]relative[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]222[代码][代码]rpx;[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]222[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]220[代码][代码]rpx;[代码][代码] [代码][代码]text-align[代码][代码]: [代码][代码]center[代码][代码];[代码][代码] [代码][代码]margin[代码][代码]: [代码][代码]320[代码][代码]rpx [代码][代码]auto[代码] [代码]0[代码] [代码]auto[代码][代码];[代码][代码] [代码][代码]border-radius: [代码][代码]50%[代码][代码];[代码][代码]}[代码] [代码].mod-scanning .ui-round .ibase-blue[代码][代码]1[代码] [代码]{[代码][代码] [代码][代码]display[代码][代码]: [代码][代码]block[代码][代码];[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]relative[代码][代码];[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]9[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]220[代码][代码]rpx;[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]220[代码][代码]rpx;[代码][代码] [代码][代码]font-size[代码][代码]: [代码][代码]100[代码][代码]rpx;[代码][代码] [代码][代码]line-height[代码][代码]: [代码][代码]220[代码][代码]rpx;[代码][代码] [代码][代码]text-align[代码][代码]: [代码][代码]center[代码][代码];[代码][代码] [代码][代码]color[代码][代码]: [代码][代码]#fff[代码][代码];[代码][代码]}[代码] [代码].mod-scanning .ui-round .round {[代码][代码] [代码][代码]position[代码][代码]: [代码][代码]absolute[代码][代码];[代码][代码] [代码][代码]width[代码][代码]: [代码][代码]110px[代码][代码];[代码][代码] [代码][代码]height[代码][代码]: [代码][代码]110px[代码][代码];[代码][代码] [代码][代码]left[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]right[代码][代码]: [代码][代码]0[代码][代码];[代码][代码] [代码][代码]border-radius: [代码][代码]50%[代码][代码];[代码][代码] [代码][代码]background-color[代码][代码]: [代码][代码]#F57D65[代码][代码];[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-1[代码] [代码]{[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]8[代码][代码];[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-2[代码][代码],[代码][代码].mod-scanning .ui-round .round[代码][代码]-3[代码][代码],[代码][代码].mod-scanning .ui-round .round[代码][代码]-4[代码][代码],[代码][代码].mod-scanning .ui-round .round[代码][代码]-5[代码] [代码]{[代码][代码] [代码][代码]/*border: 1rpx solid #fff;*/[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-2[代码] [代码]{[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]2[代码][代码];[代码][代码] [代码][代码]animation: bounce [代码][代码]2[代码][代码]s [代码][代码]0[代码][代码]s infinite ease-in-out;[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-3[代码] [代码]{[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]3[代码][代码];[代码][代码] [代码][代码]animation: bounce [代码][代码]2[代码][代码]s [代码][代码]-0.7[代码][代码]s infinite ease-in-out;[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-4[代码] [代码]{[代码][代码] [代码][代码]z-index[代码][代码]: [代码][代码]4[代码][代码];[代码][代码] [代码][代码]animation: bounce [代码][代码]2[代码][代码]s [代码][代码]-1.4[代码][代码]s infinite ease-in-out;[代码][代码]}[代码] [代码].mod-scanning .ui-round .round[代码][代码]-5[代码] [代码]{[代码][代码] [代码][代码]/*z-index: 5;*/[代码][代码] [代码][代码]/*animation: bounce 2s -1.5s infinite ease-in-out;*/[代码][代码]}[代码]
2017-07-17 - 关于蓝牙的问题 wx.onBluetoothAdapterStateChange
wx.onBluetoothAdapterStateChange关键代码如下 [代码]Page({ onshow(){ wx.openBluetoothAdapter({ complete: (res) => { console.error('openBluetoothAdapter complete', res); wx.onBluetoothAdapterStateChange((res) => { console.error('onBluetoothAdapterStateChange callback', res); }); } } });[代码]Android手机:如果手机蓝牙是关闭的,然后用户再来回切换操作系统的蓝牙开关,始终不会打印[代码]onBluetoothAdapterStateChange callback[代码] Android手机:如果手机蓝牙是开启的,然后用户再来回切换操作系统的蓝牙开关,可以正常打印[代码]onBluetoothAdapterStateChange callback[代码] Android手机:如果手机蓝牙是开启的,然后退出小程序(点击微信左上角的“X”按钮),然后再进来,重复步骤循环几次,然后切换操作系统的蓝牙开关,发现会重复(就是注册总次数)打印:[代码]onBluetoothAdapterStateChange callback[代码] IPhone无以上问题 结论Android手机一定要[代码]wx.openBluetoothAdapter[代码]成功一次以后才能正常监听[代码]wx.onBluetoothAdapterStateChange[代码],而且存在[代码]onBluetoothAdapterStateChange[代码]重复注册问题 IPhone 操作正常 建议Android 跟 Iphone 手机保持一致,理论上 [代码]wx.onBluetoothAdapterStateChange[代码]是用来监听蓝牙状态的,与用户[代码]wx.openBluetoothAdapter[代码]是否成功无关 蓝牙功能可否跟[代码]获取地位信息[代码]和[代码]获取用户信息[代码]一样,开发者根据业务需要调用蓝牙API,用户来选择[代码]允许[代码]或者[代码]拒绝[代码]
2017-07-05 - wx.requestPayment 为什么一定要用户点击了“返回商家”才进入回调
wx.requestPayment 为什么一定要用户点击了“返回商家”才进入complete回调。如果遇见以下业务场景改如何处理好? 1、我们的业务场景是:当用户支付成以后,我们会尝试用蓝牙给我们的设备开锁。 2、但是我们通过数据统计发现,有部分用户到了支付成功页面以后,不会点击“返回商家”按钮,直接HOME键或者切换应用程序了。 3、这样导致我们部分用户投诉:“怎么支付成功了但没开锁”。(ps:虽然我们做了处理,用户下次进入我们的小程序的时候我们会继续尝试开锁) 我们期望的是,如果用户支付成功了,不管用户有没有点击“返回商家”按钮,都能正常的进入complete回调,或者请告知还有什么更好的方法可以解决我们的需求。期待您的回复! [图片]
2017-06-19 - wx.requestPayment 为什么一定要用户点击了“返回商家”才进入回调
wx.requestPayment 为什么一定要用户点击了“返回商家”才进入complete回调。如果遇见以下业务场景改如何处理好? 1、我们的业务场景是:当用户支付成以后,我们会尝试用蓝牙给我们的设备开锁。 2、但是我们通过数据统计发现,有部分用户到了支付成功页面以后,不会点击“返回商家”按钮,直接HOME键或者切换应用程序了。 3、这样导致我们部分用户投诉:“怎么支付成功了但没开锁”。(ps:虽然我们做了处理,用户下次进入我们的小程序的时候我们会继续尝试开锁) 我们期望的是,如果用户支付成功了,不管用户有没有点击“返回商家”按钮,都能正常的进入complete回调,或者请告知还有什么更好的方法可以解决我们的需求。期待您的回复! [图片]
2017-06-04