mtlNFC 封装了应用内读取NFC卡片信息的功能。应用界面需要在前台并且打开手机NFC功能才能正常读取卡片信息。
2017年苹果在 WWDC 大会上 开放了 iOS11 读取 NDEF 标准格式的 NFC 功能,但只限于 iPhone 7 及以上的机型。
插件使用攻略
1,登录苹果开发者中心,配置包名(Bundle Identifier)申请 NFC 权限,如下图所示:
2,创建 entitlements 文件,告诉 APICloud 云编译服务器 APP 申请访问 NFC 权限。配置详情参考论坛文档,示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
</array>
</dict>
</plist>
3,云编译时勾选、填写访问 NFC 提示语,如下图所示:
鸿蒙插件使用攻略
module.json5文件配置示例:
{
"module": {
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home",
"ohos.nfc.tag.action.TAG_FOUND"
],
"uris": [
{
"type":"tag-tech/NfcA"
},
{
"type":"tag-tech/IsoDep"
},
{
"type":"tag-tech/NfcB"
},
{
"type":"tag-tech/NfcV"
},
{
"type":"tag-tech/NfcF"
}
]
}
]
}
]
}
}
```js
<div id="init"></div>
## **init**
打开NFC,读取卡片信息。设备NFC功能打开后,应用在前台时调用此方法可以读取卡片信息返回。
init(callback(ret,err))
### callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
```js
{
status: //是否成功
id: //status为true时返回卡片物理id
msg: //status为false时返回错误信息
}
err:
{
code: , //布尔类型;是否获取成功
msg:, //字符串类型;
}
var mtlNFC = api.require('mtlNFC');
mtlNFC.init(function(ret,err) {
if (ret.status) {
alert(JSON.stringify(ret));
}
})
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本
使用完毕后需要调用此方法关闭
unInit()
var mtlNFC = api.require('mtlNFC');
mtlNFC.unInit();
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本
设置提示文案
setTips({params})
tips:
tipsColor:
isShake:
var mtlNFC = api.require('mtlNFC');
mtlNFC.setTips({
tips:"请重新扫描",
tipsColor:"#ff0000",
isShake:true
});
Android系统、harmonyOS
可提供的1.0.2及更高版本
当前设备是否支持NFC功能
isSupportNFC(callback(ret)
ret:
{
status: //是否支持 true:支持
}
var mtlNFC = api.require('mtlNFC');
mtlNFC.isSupportNFC(function(ret) {
alert(JSON.stringify(ret));
})
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本
当前设备NFC功能是否打开
isOpenNFC(callback(ret)
ret:
{
status: //nfc开关是否打开 true:已打开
}
var mtlNFC = api.require('mtlNFC');
mtlNFC.isOpenNFC(function(ret) {
alert(JSON.stringify(ret));
})
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本
跳转到系统NFC设置页面打开nfc开关
openNFC(callback(ret)
ret:
{
status: //nfc开关是否打开 true:已打开
}
var mtlNFC = api.require('mtlNFC');
mtlNFC.openNFC(function(ret) {
alert(JSON.stringify(ret));
})
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本
没有弹窗的方式打开NFC读取,可以在自己的页面调用此方法直接读取NFC卡片内容
initNFC(callback(ret,err))
ret:
{
status: //是否成功
id: //status为true时返回卡片物理id
msg: //status为false时返回错误信息
}
var mtlNFC = api.require('mtlNFC');
mtlNFC.initNFC(function(ret,err) {
if (ret.status) {
alert(JSON.stringify(ret));
}
})
Android系统,iOS系统、harmonyOS
可提供的1.0.0及更高版本