• 【转】iOS NFC


    原文网址:iOS NFC (juejin.cn)

    概述

    iOS 在 iOS11(iPhone7/iPhone7 Plus) 之后开放 NFC 主动扫描功能

    并且在 iOS13(iPhoneXS/iPhoneXR) 后开放NFC 后台扫描功能

    时间表对照

    所以在 iOS 端通常有两个业务场景:

    主动扫描:用户主动打开 App 并开启 NFC 功能扫描

    场景为 :设备中主动打开我们的 App 并开始 NFC 扫描进程,然后可以识别到靠近的 NFC 标签中的数据。

    最低硬件要求:
    系统版本: iOS 11
    硬件: iPhone 7 及以上

    后台扫描:用户不打开 App,通过手机扫描弹窗后,打开 App

    场景为 :设备中不打开 App,靠近 NFC 标签后,手机出现弹窗,然后提示打开相关的 App,并传入数据。(类似使用手机刷卡地铁进站时,会弹出北京通)

    后台模式扫描要求:
    硬件: iPhoneXS/iPhoneXR 及以上

    NFC 芯片存储容量

    芯片中存储内容的大小限制,主要由芯片类型确定,市场上主要有以下几种主流的容量:

    1. 144 字节 --- 使用 NXP NTAG 203/213 芯片 主要用来网址标签、蓝牙配对标签 如 门禁钥匙扣、电梯卡
    2. 888 字节 --- 使用 NXP NTAG 216 芯片 主要用来 多任务标签、NFC 电子名片(包含姓名、手机、邮箱等)、华为一碰传贴纸(电脑手机传输文件)、小米碰碰贴(可以自定义动作标签,如开关蓝牙,打开 WiFi )等。
    3. 4000/8000 字节 --- 其他类芯片 可以用来存储图片等(暂时没有找到商业应用场景)。

    一个包含了姓名、电话、邮箱、公司名称、邮箱、网址的NFC标签会占有约 159 字节的容量。

    数据格式要求: NDEF

    iOS 目前只支持 NDEF 格式的内容

    NDEF 格式

    NDEF 格式是 NFC FROUM 发布的一个通用 NFC 数据传输格式,支持 UTF-8 编码、Unicode 编码,内容支持文本内容、URI 内容,甚至支持图片内容。

    更为详细的,这篇文章里讲解的更细致: www.pianshen.com/article/860…

    NDEF 的文本格式

    这是整体的文本数据格式,第一个字节用来描述数据的状态;后面的 n-1 个字节用来描述语言的编码,如英语、还是日语、汉字;最后面不固定长度,

    上面的是文本格式下,状态字节的具体编码格式。

    NDEF 的 URI 格式

    限制

    这些情况下无法使用后台 NFC 功能:

    1. 重启手机后,没有解锁过
    2. 有一个 NFC 进程正在运行
    3. Apple 钱包正在使用
    4. 相机正在使用
    5. 飞行模式下

    具体 iOS NFC 开发流程

    1. AppleID 开通 NFC Tag Reading 功能。
    2. 工程进行描述文案等配置。
    3. 代码开发。
    4. 如果需要支持后台扫描,还需要支持 Universal Link 功能。

    注意点

    1.Apple NFC 不支持支付相关的业务场景,如扫描银行卡进行 NFC 支付功能。 2.同时只能存在一个扫描进程 Session。
    3.一个扫描进程 Session 只能存在 60s,超过后需要重新开启一个。
    4.可以配置同时扫描多个或者单个 tag,配置单个时,识别到一个 tag 后会停止。

    参考文章

    developer.apple.com/documentati…

    www.jianshu.com/p/25b8ff698…

    medium.com/cardsmobile…

    www.raywenderlich.com/9582458-get…


    作者:落寒
    链接:https://juejin.cn/post/6914233111191584781
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    Stay hungry, stay foolish!
  • 相关阅读:
    dotnet程序优化心得(一)
    文章自动排版javascript程序
    GeoTools 2.1.0 released (zz)
    dotnet下时间精度测量
    创建对静态类中一组方法的访问代理
    dotnet程序优化心得(二)
    java web中的Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
    android开发_SimpleAdapter适配器
    java开发_""和null的区别
    一个小巧的HTML编辑器_CLEditor_源码下载
  • 原文地址:https://www.cnblogs.com/wi100sh/p/15162395.html
Copyright © 2020-2023  润新知