mtlNFC

概述

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 提示语,如下图所示:

图片说明

鸿蒙插件使用攻略

  • 鸿蒙设备使用该插件调用NFC功能需要在widget/res/hos目录下新建module.json5文件, 在module.json5文件中添加下面示例中的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:

  • 类型:JSON 对象
  • 描述:只支持iOS端
  • 内部字段:
{
    
   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

使用完毕后需要调用此方法关闭

unInit()

示例代码

var mtlNFC = api.require('mtlNFC');
mtlNFC.unInit();

可用性

Android系统,iOS系统、harmonyOS

可提供的1.0.0及更高版本

setTips

设置提示文案

setTips({params})

parames

tips:

  • 类型:字符串
  • 描述:(可选项)提示文案
  • 默认:"靠近手机背部开始识别"

tipsColor:

  • 类型:字符串
  • 描述:(可选项)提示文案字体颜色
  • 默认:"#000000",黑色

isShake:

  • 类型:布尔
  • 描述:(可选项)提示文案是否需要抖动效果
  • 默认: true

示例代码

var mtlNFC = api.require('mtlNFC');
mtlNFC.setTips({
    tips:"请重新扫描",
    tipsColor:"#ff0000",
    isShake:true
});

可用性

Android系统、harmonyOS

可提供的1.0.2及更高版本

isSupportNFC

当前设备是否支持NFC功能

isSupportNFC(callback(ret)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:      //是否支持 true:支持
}

示例代码

var mtlNFC = api.require('mtlNFC');
mtlNFC.isSupportNFC(function(ret) {
    alert(JSON.stringify(ret));
})

可用性

Android系统,iOS系统、harmonyOS

可提供的1.0.0及更高版本

isOpenNFC

当前设备NFC功能是否打开

isOpenNFC(callback(ret)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:       //nfc开关是否打开 true:已打开
}

示例代码

var mtlNFC = api.require('mtlNFC');
mtlNFC.isOpenNFC(function(ret) {
    alert(JSON.stringify(ret));
})

可用性

Android系统,iOS系统、harmonyOS

可提供的1.0.0及更高版本

openNFC

跳转到系统NFC设置页面打开nfc开关

openNFC(callback(ret)

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:      //nfc开关是否打开 true:已打开
}

示例代码

var mtlNFC = api.require('mtlNFC');
mtlNFC.openNFC(function(ret) {
    alert(JSON.stringify(ret));
})

可用性

Android系统,iOS系统、harmonyOS

可提供的1.0.0及更高版本

initNFC

没有弹窗的方式打开NFC读取,可以在自己的页面调用此方法直接读取NFC卡片内容

initNFC(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2