初始化微信硬件设备时报错:access denied,开启debug模式后,提示 nopermissionjsapi ,是微信8.0.30的bug?
我用3个公众号测试,暂且就用公众号ABC代替说明问题.
微信未更新到8.0.30时,公众号A中绑定了蓝牙打印机,调用openWXDeviceLib接口,正常使用. 这时公众号B和C还没有绑定蓝牙设备
更新到8.0.30后, 公众号A也是正常的, 然后在公众号B和C绑定蓝牙设备,绑定时一切正常,公众号中也可以看到已连接1个设备,但是openWXDeviceLib接口初始化时报错,提示nopermissionjsapi(相同程序,公众号中的设置也相同)
经过反复测试,最终发现是微信更新到8.0.30后导致的,我按以下步骤操作就正常了.
1:把微信卸载,安装8.0.28版本, 进入公众号B和公众号C后,测试可以正常初始化硬件设备,可以正常打印
2:把微信更新到最新的8.0.30, 再次测试,也是正常的
3:如果直接在8.0.30版本中,扫描条码绑定设备,初始化硬件设备时就会报错:nopermissionjsapi
官方人员能不能反馈解决这个问题?android安装旧版本还好处理,ios没法安装旧版本,只能先在android上8.0.28登录,绑定设备后,再到ios上登录微信才能正常使用.
初始化硬件的代码片段
wx.config({ beta: true, debug: true,// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: params.appId, timestamp: params.timestamp, nonceStr: params.nonceStr, signature: params.signature, jsApiList: [ 'openWXDeviceLib', 'closeWXDeviceLib', 'getWXDeviceInfos', 'getWXDeviceBindTicket', 'getWXDeviceUnbindTicket', 'startScanWXDevice', 'stopScanWXDevice', 'connectWXDevice', 'disconnectWXDevice', 'sendDataToWXDevice', 'onWXDeviceBindStateChange', 'onWXDeviceStateChange', 'onScanWXDeviceResult', 'onReceiveDataFromWXDevice', 'onWXDeviceBluetoothStateChange', ] }); alert("初始化库结束"); }