美文网首页
微信小程序读取nfc门卡信息

微信小程序读取nfc门卡信息

作者: Solang | 来源:发表于2022-03-10 17:16 被阅读0次

    首先通过wx.getNFCAdapter()来获取nfc实例

    然后调用startDiscovery获取当前手机nfc状态

    已经打开了nfc的就可以调用监听方法onDiscovered

    监听到数据后setData把数据展示出来就ok了,方法如下

     nfcRead() {
    
            console.log('nfc')
    
            const nfc = wx.getNFCAdapter()
    
            this.nfc = nfc
    
            let _this = this
    
    
    
            function discoverHandler(res) {
    
                console.log('discoverHandler', res)
    
                const data = new Uint8Array(res.id)
    
                let str = ""
    
                data.forEach(e => {
    
                    let item = e.toString(16)
    
                    if (item.length == 1) {
    
                        item = '0' + item
    
                    }
    
                    item = item.toUpperCase()
    
                    console.log(item)
    
                    str += item
    
                })
    
                _this.setData({
    
                    newCardCode: str
    
                })
    
                console.log(str)
    
                wx.showToast({
    
                    title: '读取成功!',
    
                    icon: 'none'
    
                })
    
            }
    
            nfc.startDiscovery({
    
                success(res) {
    
                    console.log(res)
    
                    wx.showToast({
    
                        title: 'NFC读取功能已开启!',
    
                        icon: 'none'
    
                    })
    
                    nfc.onDiscovered(discoverHandler)
    
                },
    
                fail(err) {
    
                    console.log('failed to discover:', err)
    
                    if(!err.errCode){
    
                      wx.showToast({
    
                        title: '请检查NFC功能是否正常!',
    
                        icon: 'none'
    
                      })
    
                      return
    
                    }
    
                    switch (err.errCode) {
    
                        case 13000:
    
                          wx.showToast({
    
                            title: '设备不支持NFC!',
    
                            icon: 'none'
    
                          })
    
                          break;
    
                        case 13001:
    
                          wx.showToast({
    
                            title: '系统NFC开关未打开!',
    
                            icon: 'none'
    
                          })
    
                          break;
    
                        case 13019:
    
                          wx.showToast({
    
                            title: '用户未授权!',
    
                            icon: 'none'
    
                          })
    
                          break;
    
                        case 13010:
    
                          wx.showToast({
    
                            title: '未知错误!',
    
                            icon: 'none'
    
                          })
    
                          break;
    
                      }
    
                }
    
            })
    
        },
    

    相关文章

      网友评论

          本文标题:微信小程序读取nfc门卡信息

          本文链接:https://www.haomeiwen.com/subject/nntqdrtx.html