微信小程序nfc读取数据

这篇具有很好参考价值的文章主要介绍了微信小程序nfc读取数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    微信官方文档说明确实太模糊了也没有示例代码,真是研究了半天才摸清楚,话不多说上代码。希望能帮助到大家!

 微信小程序nfc,微信小程序,小程序,javascript

// nfc识别

    nfcRead() {

        var that = this;

        const adapter = wx.getNFCAdapter();

        console.log("获取NFC实例", adapter)

        adapter.onDiscovered(res => {

            console.log("读取到卡片了", res);

            let tagId = res.id;

            console.log("获取到tagID:", tagId);

            if (res.techs.includes(adapter.tech.mifareClassic)) { //如果影响你nfc可以去掉

                console.log('发现' + adapter.tech.mifareClassic + '卡');

                let nfcIsoDep = adapter.getIsoDep();

                nfcIsoDep.connect({

                    success: res => {

                        console.log('完成连接', res)

                    }

                })

                let str = '*********************'

                const sendData = new Uint8Array(str.match(/[\da-f]{2}/gi).map(function (h) {

                    return parseInt(h, 16)

                }))

                nfcIsoDep.transceive({

                    data: sendData.buffer,

                    success: function (res) {

                        console.log('发送数据并解密成功, 接收数据如下:', res);

                        let resData = that.ab2str(res.data)

                        console.log('resData', resData);

                    },

                    fail: function (err) {

                        console.log('发送数据失败A', err);

                        wx.showToast({

                            title: 'nfc失败!',

                            icon: 'error'

                        })

                    }

                })

                let str2 = '**************'

                const sendData2 = new Uint8Array(str2.match(/[\da-f]{2}/gi).map(function (h) {

                    return parseInt(h, 16)

                }))

                nfcIsoDep.transceive({

                    data: sendData2.buffer,

                    success: function (res) {

                        console.log('发送数据并解密成功, 接收数据如下:', res);

                        let resData = that.ab2str(res.data)

                        console.log('resData', resData);

                    },

                    fail: function (err) {

                        console.log('发送数据失败A', err);

                        wx.showToast({

                            title: 'nfc失败!',

                            icon: 'error'

                        })

                    }

                })

            } else {

                console.log('没发现卡');

                wx.showToast({

                    title: '卡片类型有误!',

                    icon: 'error'

                })

            }

        })

        adapter.startDiscovery({

            success: function (res) {

                console.log('startDiscovery:', res);

            },

            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;

                }

            }

        })

    },文章来源地址https://www.toymoban.com/news/detail-731933.html

    ab2str(buffer) { //这里是我这里需要的数据

        const hexArr = Array.prototype.map.call(

            new Uint8Array(buffer),

            function (bit) {

                return ('00' + bit.toString(16)).slice((-2))

            })

        return hexArr.join('')

    },

到了这里,关于微信小程序nfc读取数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 NFC 功能

    一、在微信小程序中,使用nfcIsoDep.transceive发送指令的基本步骤如下: 使用wx.getNFCAdapter获取NFC适配器实例。 调用NFCAdapter.startDiscovery开始监听贴卡。 注册贴卡监听回调,调用NFCAdapter.onDiscovered。 在回调函数中,根据返回的res.techs字段匹配到卡片支持的NFC标准。 使用NFCAdapter

    2024年04月28日
    浏览(155)
  • 微信小程序nfc指令异常记录

    小程序nfc相关代码:  connect 成功但是指令报错,报错信息: transceive:fail:system internal error:tag was lost 解决方式,替换NfcA

    2024年02月12日
    浏览(63)
  • 微信小程序-读取数据

    在开发微信小程序的时候,我们经常都会用到一些配置数据,或者当做“单向数据库(只读)”使用。 我们新建一个新的项目工程,JS版本就可以。 免于麻烦,我们新建一个page(showdata)来显示数据。 为了方便管理,我们在项目工程新建一个目录(data),用于存数据。另外

    2024年02月15日
    浏览(43)
  • 微信小程序如何读取本地云存储txt数据,避免乱码

    找到你的txt文件,重命名为json文件 上传到云存储中,获取File ID 编写js代码 相关技术文档: https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.readFile.html

    2024年02月12日
    浏览(52)
  • uniapp app nfc读取IC卡数据

    读取芯片卡ID 先勾选权限 判断当前设备是否支持NFC以及是否打开了NFC功能 页面使用 nfc.js文件

    2024年02月16日
    浏览(36)
  • 微信小程序读取本地json

    首先在项目录下新建【server】文件夹,新建data.js文件,并定义好json数据格式。如下: pages/index/index.ts导入data.js并请求json pages/index/index.wxml页面展示数据  

    2024年02月14日
    浏览(42)
  • 微信小程序怎么读取居民身份证?

    微信小程序怎么读取身份证?         熟悉开发工具:首先,你需要了解微信小程序开发工具有哪些相关的知识。微信小程序开发工具提供了图形化开发环境,使得开发者能够更容易地进行小程序的开发工作。这是基础的一步。编写小程序代码:微信小程序采用类似HTML、C

    2024年01月19日
    浏览(41)
  • uniapp读取(获取)缓存中的对象值(微信小程序)

    大家好!我是夏小花,今天是 2024年4月24日|农历三月十六 ,在我们日常开发中,做小程序可能会往缓存中存值或者是存对象,今天这篇博客文章主要是讲如何在微信小程序如何读取缓存中的值和如何向缓存中存值。 满满干货哦!!! 下面这段代码是基于uniapp进行向缓中存值

    2024年04月25日
    浏览(58)
  • 微信小程序文件相关操作(新建文件夹、下载、解压、读取等)

    wx.downloadFile()  //下载 wx.getFileSystemManager()  //获取小程序的文件管理器 FileSystemManager.unzip() //解压 FileSystemManager.readdir()  //读取文件夹 FileSystemManager.readFile()  //读取文件 FileSystemManager.access() //判断文件/目录是否存在 FileSystemManager.mkdir()  //创建文件夹 index.js 在 onload 中获取 F

    2024年02月15日
    浏览(50)
  • 微信小程序实现拼团功能javascript + swiper

    实现以上的拼团功能,纯自己手写 1.js 部分自己封装的方法,需要后台返回拼团组,主要包括团长信息,团结束时间等,核心是要拼接上面的最后面的1秒只内从9减到0的倒计时,给用户一种紧迫感 startCountdown: function () { const that = this; const timer = setInterval(function () { const groups =

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包