5分钟集成NFC功能

NFC(Near Field Communication)简介

近场通信技术,能以非接触方式读取标签信息。
常见的银行卡、公交IC卡都是NFC标签。

WWDC17上iOS11 引入CoreNFC框架,开发者可以在iPhone 7和iPhone 7 Plus上使用这一技术,参考session 718

Xcode 9 beta中,CoreNFC框架对simulator会编译失败,需使用真机。

需要注意的几点

Session is on demand
  • ReaderSession按需创建,整个系统在一个时刻最多只能有一个session处于工作状态,其余session会在FIFO队列中等待。
Foreground mode only
  • NFC标签读取操作只能在前台运行时进行,无法后台运行
Maximum 60 seconds of scanning per session
  • 一个session的扫描时间最长为60秒,超时未读取成功需要重新创建session
Configurable for single or multi-tag read operation
  • 可配置成单标签(读取成功一个后session关闭)或者多标签(可在60秒内读取多个标签)读取模式
Usage description will be shown over the top of your application
  • 隐私使用说明会悬浮显示在应用程序之上

集成步骤

1. 打开App ID中的NFC Tag Reading选项
appid.png
2. 重新生成Provisioning Profile
provision.png
3. 在工程中链接CoreNFC.framework
framework.png
4. 在Capabilities中打开NFC Tag Reading选项(在Xcode 9 beta版中没找到这个选项,略过)
capability.png
5. 在entitlements文件中添加键值对

<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
</array>


entitlements.png
6. Info.plist中添加隐私说明

<key>NFCReaderUsageDescription</key>
<string>银行卡</string>


privacy_usage
7. 开始扫描NFC标签吧
code.png

final.png

总结

Enable NFC tag reading capability
Add "Privacy - NFC Scan Usage Description" in Info.plist
Add Core NFC to your application
Happy tag reading!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 本篇文章共分为三个部分,读者可根据需要直接阅读对应部分: 1. iOS 对NFC支持的现状 2.NFC基本概念与相...
    Cstars阅读 13,973评论 3 9
  • 原文链接: http://fighting300.com... 大家可能听过NFC这项功能,或者有可能你每天都在使...
    fighting300阅读 10,092评论 10 8
  • 先了解几个概念什么是NFC?NDEF指的是什么?什么是CoreNFC? 什么是 NFC NFC(Near Fiel...
    A訫飛Flyme阅读 13,726评论 10 6
  • 在2017的WWDC,苹果终于发布了众多开发者期待已久的系统级框架 CoreNFC。可能你对于NFC是什么并不是很...
    Liberalism阅读 10,240评论 1 6