微信小程序读取写入NFC文本,以及NFC直接启动小程序指定页面

一、微信小程序读取NFC文本(yyy优译小程序实现),网上有很多通过wx.getNFCAdapter方法来监听读取NFC卡信息,但怎么处理读取的message文本比较难找,现用下面方法来实现,同时还解决几个问题,1、在回调方法中this.setData不更新信息,因为this的指向问题,2、在退出页面时,使用offDiscovered无效,无法关停监听问题,因为要传入onDiscovered同一个callback,

// pages/nfc/nfc.js
let mythis = null;
// 获取应用实例
const app = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        isRead: false,
        typeList: ['打卡', '记录'],
        typeIndex: 0,
        // infoData: '标签编码【CZ00001】;MAC地址【30-9C-23-5A-6F-52】;资产属性【零购】;投运时间【2017.12】;使用部门【信息通信分公司】;使用地点【调度大楼】;设备属性【内网】;设备类别【台式计算机】',
        infoArray:[],
        showModel:false,
        NFCAdapter: null,
    },
    changeType(e) {
        let index = e.currentTarget.dataset.index
        this.setData({
            typeIndex: index
        })
    },
    openShow:function(){
        this.setData({
          showModel:true,
        })
      },
    closeShow:function(){
        this.setData({
          showModel:false,
        })
      },
      //关停NFC监听和对象
      closeNFC() {
        var NFCAdapter = this.data.NFCAdapter
        NFCAdapter.offDiscovered(this.discoverHandler);
        NFCAdapter.stopDiscovery()

      },

    //初始化NFC对象和开始监听  
    openNFC(){      
      let nfc = wx.getNFCAdapter()
        this.setData({
            NFCAdapter: nfc,
          })
          this.data.NFCAdapter.startDiscovery({
            fail(err) {
                console.log('failed to discover:', err)
            }
        })
        this.data.NFCAdapter.onDiscovered(this.discoverHandler)
       
    },
    //监听回调方法
    discoverHandler(res) {
      var that = this  
      console.log('
微信小程序支持NFC(Near Field Communication)的读写功能,可以通过对NFC标签的读取写入实现与设备的交互。在微信小程序中,可以通过wx.startHCE()方法启动HCE服务,使手机模拟一个NFC卡片。可以通过wx.onHCEMessage()方法监听HCE服务接收到的消息,并通过wx.sendHCEMessage()方法发送消息。这样,可以实现小程序与其他NFC设备之间的通信。 要使用NFC读写功能,首先需要在小程序的app.json文件中声明NFC权限。例如,在"permission"字段中添加"nfc"权限。然后,在小程序页面中,使用wx.startHCE()方法来启动HCE服务。在启动HCE服务之后,可以监听HCE服务接收到的消息,并处理这些消息。可以使用wx.onHCEMessage()方法来监听HCE服务接收到的消息,并在回调函数中处理这些消息。同时,可以使用wx.sendHCEMessage()方法来向HCE服务发送消息。 需要注意的是,NFC读写功能在不同的手机上的支持程度可能会有所差异。在使用NFC读写功能时,建议进行兼容性测试,并提供适当的错误处理机制,以确保用户的良好体验。 总结起来,要在微信小程序中实现NFC的读写功能,需要进行以下步骤: 1. 在app.json文件中声明NFC权限。 2. 使用wx.startHCE()方法启动HCE服务。 3. 使用wx.onHCEMessage()方法监听HCE服务接收到的消息,并进行处理。 4. 使用wx.sendHCEMessage()方法向HCE服务发送消息。 希望以上信息对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值