1***@qq.com
1***@qq.com
  • 发布:2023-03-24 09:56
  • 更新:2023-04-03 10:25
  • 阅读:425

【报Bug】uniapp 调企业微信api wx.qy.startNFCReader后,无法调onNFCReadMessage监听

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

第三方开发者工具版本号: 1.06.2210310

基础库版本号: 2.20.3

项目创建方式: CLI

CLI版本号: 2.6.11

示例代码:
onLoad(options) {  
			  
			this.intNfc()  
		},  
		  
		onNFCReadMessage: function (e) {  
		    console.log(JSON.stringify(e))  
		    if (1 == e.messageType) {  
		      wx.showModal({  
		        title: 'NFC-Id',  
		        content: JSON.stringify(e),  
		      })  
		    } else if (2 == e.messageType) {  
		      console.log('Auto-Stop')  
		      wx.showModal({  
		        title: 'NFC-Auto-Stop',  
		        content: JSON.stringify(e),  
		      })  
		    }  
		  },  
		methods: {  
			intNfc() {  
				wx.qy.startNFCReader({  
				    success(res){  
				        console.log('=== checkNfcSupport: nfc.startDiscovery success, res = ', res)  
				        that.supportNfc = true  
						console.log(res, "startNFCReader-supportNfc")  
				        if (that.nfc === null){  
				            console.log(res, "startNFCReader")  
				            // that.nfc = new Nfc(that.adapter)  
				        }  
				        that.returnHome()  
				    },  
				    fail(err) {  
				        console.log('=== checkNfcSupport nfc.startDiscovery failed to discover:', err)  
				        that.supportNfc = false  
				        let msg = ''  
				        if (err !== null && typeof err !== 'undefined'){  
				            if (typeof err === 'object'){  
				                err = JSON.stringify(err)  
				            }  
				            if (err.indexOf("13000") > -1){  //设备不支持NFC  
				                that.supportNfc = false  
								app.globalData.CardReader.updateMode('qrCode') // 不支持切换至二维码 20230306  
				            } else if (err.indexOf("13001") > -1){           //系统NFC开关未打开  
				                //未打开时自动寻找蓝牙,但是需要提示  
				                that.supportNfc = true  
				                // wx.showModal({  
				                //     title: '提示',  
				                //     content: '系统NFC开关未打开, 请您打开手机NFC和赋予微信访问NFC的权限'  
				                // })  
				                msg = '系统NFC开关未打开, 请您打开手机NFC'  
				            }  
				        }  
				        if (that.supportNfc){  
				            if (that.nfc === null){  
				                console.log(" fail: mobile support NFC, using nfc -- supportNfc")  
				                // that.nfc = new Nfc(that.adapter)  
				            }  
				        } else {  
				            if (that.nfcBle === null){  
				                console.log(" fail: mobile not support NFC, using nfcBle")  
				                //that.nfcBle = new NfcBle()  
				            }  
				        }  
				  
				        if (!that.supportNfc){  
				            that.notSupportNFC()  
				        } else {  
				            if (msg.length > 1){  
				                // that.showModal(msg) // 不用提示 20230306  
				                that.returnHome()  
				            } else {  
				                that.returnHome()  
				            }  
				        }  
				    }  
				})  
			},  
}

操作步骤:

开启nfc,读取nfc卡片

预期结果:

进入到onNFCReadMessage监听中,打印日志

实际结果:

Error in onNFCReadMessage hook: "typeError: cannot read property 'apply' of undefined"

bug描述:

2023-03-24 09:56 负责人:DCloud_UNI_WZF 分享
已邀请:

最佳回复

DCloud_UNI_WZF

DCloud_UNI_WZF

HBuilderX 3.7.12 (cli 2.0.2-alpha-3071220230331001) 已修复

DCloud_UNI_WZF

DCloud_UNI_WZF

vue2 复现该问题,感谢反馈,已加分

DCloud_UNI_WZF

DCloud_UNI_WZF

临时解决方案:
替换 HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js 为附件文件

  • 1***@qq.com (作者)

    没有好啊,vue-cli创建的,不是hbuilderX直接创建的


    2023-03-31 19:27

  • DCloud_UNI_WZF

    回复 1***@qq.com: 文件替换了吗


    2023-03-31 19:39

  • 1***@qq.com (作者)

    回复 DCloud_UNI_WZF: 换了,可以,那就只能手动替换node_modules里面的这个文件了,什么时候修复呢


    2023-04-03 09:47

要回复问题请先登录注册