lovewhatIlove

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

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

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

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

    nfc() {
        const nfc = wx.getNFCAdapter()
        this.nfc = nfc
        let _this = this

        function 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()
                str += item
            })
            _this.setData({
                newCardCode: str
            })
            wx.showToast({
                title: \'读取成功!\',
                icon: \'none\'
            })
        }
        nfc.startDiscovery({
            success(res) {
                wx.showToast({
                    title: \'NFC读取功能已开启!\',
                    icon: \'none\'
                })
                nfc.onDiscovered(discoverHandler)
            },
            fail(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;
                  }
            }
        })
    },

 

 

    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;
                  }
            }
        })
    },

分类:

技术点:

相关文章:

  • 2021-09-23
  • 2021-12-18
  • 2022-12-23
猜你喜欢
  • 2021-12-20
  • 2018-08-09
  • 2021-12-04
  • 2021-12-05
  • 2021-12-05
  • 2021-11-12
  • 2021-11-12
相关资源
相似解决方案