NFCReadCard: function(){ let _this = this let adapter = wx.getNFCAdapter() console.log(adapter) adapter.startDiscovery({success:(e)=>{ console.log('开始监听贴卡',e) adapter.onDiscovered(function (res){ console.log('读到卡片了', res); //console.log(res.techs); if(res.techs.includes(adapter.tech.nfcA)){ console.log('发现'+adapter.tech.nfcA+'卡'); let nfcA = adapter.getNfcA(); app.nfcA = nfcA; nfcA.connect({ success: function(res){ console.log('设备已连接', res) nfcA.transceive({ data:new ArrayBuffer(0), success: function(res){ console.log('发送数据成功, 接收数据如下:', res); }, fail: function(err){ console.log('发送数据失败', err); } }) }, fail: function(err){ console.log('设备联接错误', err); } }); } }) }}) }
NFCAdapter.onDiscovered无法获取NFC数据,被系统拦截,应如何设置?我的小程序目标是通过NFC功能,读写NFC卡,在注册回调函数后,无法被回调,现象是贴卡后,系统会弹出选择使用NFC的应用的对话框,若选择微信,则会跳转到微信公交卡页面,提示“卡片类型不符”,图片如下:[图片] 我的“读NFC卡”方法代码如下: NFCReadCard: function(){ let _this = this let adapter = wx.getNFCAdapter() console.log(adapter) adapter.onDiscovered(function (res){ console.log('读到卡片了', res); //console.log(res.techs); if(res.techs.includes(adapter.tech.nfcA)){ console.log('发现'+adapter.tech.nfcA+'卡'); let nfcA = adapter.getNfcA(); app.nfcA = nfcA; nfcA.connect({ success: function(res){ console.log('设备已连接', res) nfcA.transceive({ data:new ArrayBuffer(0), success: function(res){ console.log('发送数据成功, 接收数据如下:', res); }, fail: function(err){ console.log('发送数据失败', err); } }) }, fail: function(err){ console.log('设备联接错误', err); } }); } }) }
2020-12-23