小程序
小游戏
企业微信
微信支付
扫描小程序码分享
13012 写入失败
uris数组和texts数组 要发什么内容啊。 。 。
records的内容我应该怎么处理整理。。
nfca的方式我也试了。
业务需求:nfc开锁。 。
能不能告诉我下能不能实现。。
我应该怎么做。。 。。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请问下大佬,这个问题解决了吗? 我也是这个问题
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
在写入数据前,必须先连接connect ,然后连接完成必须关闭,最后关闭监听,否者每次都会写入失败。
刚从坑里爬出来。
其实是小程序开发文档的问题,records数组里的对象,除了id,type和payload以外,还有一个tnf参数。
这个参数的具体作用和如何取值可以参考:
https://developer.android.google.cn/reference/android/nfc/NdefRecord?hl=zh_cn#TNF_ABSOLUTE_URI
如下,写入这个records就好了。
20201208 更新
下面的string2ArrayBuffer方法无法正确处理中文,推荐使用下面这个库进行转换:
https://www.npmjs.com/package/text-encoding
const string2ArrayBuffer = function(str) { // 首先将字符串转为16进制 let val = "" for (let i = 0; i < str.length; i++) { if (val === '') { val = str.charCodeAt(i).toString(16) } else { val += ',' + str.charCodeAt(i).toString(16) } } // 将16进制转化为ArrayBuffer return new Uint8Array(val.match(/[\da-f]{2}/gi).map(function(h) { return parseInt(h, 16) })).buffer } // tnf这个属性我是从onDiscovered的出参中发现的 const records = [{ id: string2ArrayBuffer('你要写入的id'), payload: string2ArrayBuffer('你要写入的信息'), type: string2ArrayBuffer('你要写入的类别'), tnf: 2 }];
你好,需要自己明确下,自己具体要写入什么数据;
如果是apdu指令,是通过transceive这个接口直接写ArrayBuffer没错的;
具体要通过什么对象来写,可以参考
https://developers.weixin.qq.com/miniprogram/dev/framework/device/nfc.html这里的对应关系,如果确实不清楚的话,可以把回调里能get到的对象都试一遍;另外这里确实会有比较高的概率报13017,建议开发者固定贴好卡在写,多试几次确认下
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请问下大佬,这个问题解决了吗? 我也是这个问题
在写入数据前,必须先连接connect ,然后连接完成必须关闭,最后关闭监听,否者每次都会写入失败。
刚从坑里爬出来。
其实是小程序开发文档的问题,records数组里的对象,除了id,type和payload以外,还有一个tnf参数。
这个参数的具体作用和如何取值可以参考:
https://developer.android.google.cn/reference/android/nfc/NdefRecord?hl=zh_cn#TNF_ABSOLUTE_URI
如下,写入这个records就好了。
20201208 更新
下面的string2ArrayBuffer方法无法正确处理中文,推荐使用下面这个库进行转换:
https://www.npmjs.com/package/text-encoding
const string2ArrayBuffer = function(str) { // 首先将字符串转为16进制 let val = "" for (let i = 0; i < str.length; i++) { if (val === '') { val = str.charCodeAt(i).toString(16) } else { val += ',' + str.charCodeAt(i).toString(16) } } // 将16进制转化为ArrayBuffer return new Uint8Array(val.match(/[\da-f]{2}/gi).map(function(h) { return parseInt(h, 16) })).buffer } // tnf这个属性我是从onDiscovered的出参中发现的 const records = [{ id: string2ArrayBuffer('你要写入的id'), payload: string2ArrayBuffer('你要写入的信息'), type: string2ArrayBuffer('你要写入的类别'), tnf: 2 }];
你好,需要自己明确下,自己具体要写入什么数据;
如果是apdu指令,是通过transceive这个接口直接写ArrayBuffer没错的;
具体要通过什么对象来写,可以参考
https://developers.weixin.qq.com/miniprogram/dev/framework/device/nfc.html这里的对应关系,如果确实不清楚的话,可以把回调里能get到的对象都试一遍;另外这里确实会有比较高的概率报13017,建议开发者固定贴好卡在写,多试几次确认下
我这边设备是有一个数据是要传的。
但是我写入不进去
Ndef.writeNdefMessage 是13012
NfcA 我传了ArrayBuffer 是13017
我现在想不到要怎么处理。