收藏
回答

初始化微信硬件设备时报错:access denied,是微信8.0.30的bug! ?

初始化微信硬件设备时报错: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上登录微信才能正常使用.

最后一次编辑于  2022-11-20
回答关注问题邀请回答
收藏

1 个回答

  • 欢乐马
    欢乐马
    2022-11-20


    初始化硬件的代码片段

    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("初始化库结束");
    }
    


    2022-11-20
    有用
    回复
登录 后发表内容