mobileNFC

来自于:AC模块工作室立即使用

available addEventListener begin invalidate

概述

2017年苹果在 WWDC 大会上 开放了 iOS11 读取 EDEF 标准格式的 NFC 功能,但只限于 iPhone 7 及以上的机型。由于目前只开放了读的权限,所以苹果的 NFC 是非常轻量级的一个框架。注意苹果的 NFC 目前只支持标准的 EDEF 格式的 NFC 换句话来说,iOS 扫不出公交卡,以及以前自定义格式的NFC,这个局限性很大。

模块使用攻略

1,登录苹果开发者中心,配置包名(Bundle Identifier)申请 NFC 权限,如下图所示:

图片说明

2,创建 entitlements 文件,告诉 APICloud 云编译服务器 APP 申请访问 NFC 权限。配置详情参考论坛文档,示例如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>com.apple.developer.nfc.readersession.formats</key>
  6. <array>
  7. <string>NDEF</string>
  8. </array>
  9. </dict>
  10. </plist>

3,云编译时勾选、填写访问 NFC 提示语,如下图所示:

图片说明

available

当前设备是否支持 NFC 功能

available()

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: //布尔类型;是否支持,true|false
  3. }

示例代码

  1. var mobileNFC = api.require('mobileNFC');
  2. mobileNFC.available(function(ret) {
  3. if (ret.status) {
  4. api.alert({ msg: "支持 NFC 功能!" });
  5. } else {
  6. api.alert({ msg: "不支持 NFC 功能!" });
  7. }
  8. });

可用性

iOS11 及以上系统

可提供的1.0.0及更高版本

addEventListener

添加识别结果的监听

addEventListener(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: , //布尔类型;是否获取成功
  3. messages:[
  4. records:[{
  5. type:, //字符串类型;载体的类型
  6. identifier:, //字符串类型;载体的标识
  7. payload: , //字符串类型;载体中的未解析数据
  8. typeNameFormat: //数字类型;载体的类型名称格式
  9. // 0:Empty
  10. // 1:NFCWellKnown
  11. // 2:Media
  12. // 3:AbsoluteURI
  13. // 4:NFCExternal
  14. // 5:Unknown
  15. // 6:Unchanged
  16. }]
  17. ]
  18. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: , //布尔类型;是否获取成功
  3. msg:, //字符串类型;
  4. }

示例代码

  1. var mobileNFC = api.require('mobileNFC');
  2. mobileNFC.addEventListener(function(ret, err) {
  3. if (ret.status) {
  4. api.alert({ msg: JSON.stringify(ret) });
  5. } else {
  6. api.alert({ msg: JSON.stringify(err)});
  7. }
  8. });

可用性

iOS11 及以上系统

可提供的1.0.0及更高版本

begin

开始识别

begin({params})

params

title:

  • 类型:字符串
  • 描述:(可选项)验证弹框的提示语

multiple:

  • 类型:布尔
  • 描述:(可选项)是否支持多次自动识别
  • 默认:false(识别到 tag 即停止本次识别)

示例代码

  1. var mobileNFC = api.require('mobileNFC');
  2. mobileNFC.begin({
  3. title: '您正在使用 NFC 功能',
  4. multiple: false
  5. });

可用性

iOS11 及以上系统

可提供的1.0.0及更高版本

invalidate

停止识别

invalidate()

示例代码

  1. var mobileNFC = api.require('mobileNFC');
  2. mobileNFC.invalidate();

可用性

iOS11 及以上系统

可提供的1.0.0及更高版本