大多数浏览器和
Developer App 均支持流媒体播放。
-
Core NFC 简介
Core NFC 是一种激动人心的新框架,可以帮助您的 app 在 iPhone 7 和 iPhone 7 Plus 上读取 NFC 标签。了解如何在您的 app 中整合 Core NFC 以及使用此功能的主要要求,并开始思考支持 NFC 功能的新 app 类型。
资源
相关视频
WWDC19
-
下载
欢迎 在今年中我们很高兴引进了一个新的 iOS 11 操作系统的框架(framework) 叫做“Core NFC” 它将允许你所开发的 app 与 iPhone 7 以及 iPhone 7 Plus上 的 NFC 芯片相兼容
通过使用 Core NFC 框架应用程序可以 与物理 环境以及现实世界中 物体的互动 你可能已经了解到 Apple Pay 会应用 NFC 处理复杂的交易行为
现在随着 Core NFC 框架的引入 你将可以 在你的应用程序中使用 NFC 开发出全新的 富有创造性的 iPhone 用户体验 下面我们将给大家 简要介绍一下 近场通信 Core NFC 框架所支持的功能 要求标准 使用细节以及 一些示范代码 首先让我们讨论一下 近场 通信 近场通信即 NFC 是一种无线通信技术 它可以让 临近的设备 进行 数据交换 距离限制在 几厘米内 NFC 实际上是一些 不同的传输标准 与传输协议的组合 这些标准同时存在 并使用在不同的 app 中
你可能已经看到过 或是感受过 NFC 文字传输功能 即使是很小的一张贴纸或者 卡片 都可被 NFC 阅读器无线识别 NFC 文档可与各种形状 大小 以及功能相 它们被分为 5 个类型 从 Type 1 到 Type 5 每种类型对应一个 不同的标准 例如 Type 3 是基于 FeliCa 标准 Type 4 是 基于 ISO-14443 NFC Forum 制定了关于 NFC 数据交换格式 简称 NDEF 做为一种通用的 信息交换格式 它为不同的文字类别 进行标准化的数据传输
现在我们了解了一些 关于 NFC 的基础知识 让我们看一下用 Core NFC 能做什么
在 Core NFC 首发中 我们将重点放在 NFC 标签的读取上 这可以在很多方面 提升用户体验
可能的 app 包括
将用户和地理位置 或与环境相关的内容联系起来
将实体硬件 与你的 app 相连接 甚至用于追踪店内商品信息 或库存信息 NFC Tags 还可以 代替二维码 Core NFC 可以让你的 app 读取任何 NDEF 格式的标签 这极大程度的简化了 应用程序读取标签的过程 也简化了应用程序要 应对不同标准的麻烦
Phone 7 和 iPhone 7 Plus 都支持标签读取
目前 Core NFC 不支持 输出或格式设置
在你的应用程序中使用 Core NFC 有两个要求
首先 Core NFC 是一个 权限保护 框架 你需要在 Xcode 中打开 读取近场通信标签 来获得 这一权限 但是这个 Xcode 的功能将不会
做为种子(seed)计划在 WWDC 上公布 但是通过访问 Apple Developer 网站的 “Certificates, Identifiers andProfiles” 页面 你可以 手动申请 这一权限
Core NFC 的第二个要求 是一个扫描使用的描述(Scan Usage Description)
在你的应用属性列表文件(P-list)中 需要用到这个字符串 在你的 app 开始进行 NFC 扫描的时候 这个字符串会 显示给用户 想要了解更多信息 可以观看 WWDC 有关“隐私与你的 App” 这一部分 现在你正确地设置了你的项目 让我们来看 关于 Core NFC 读取标签的 一些其他的细节
首先标签读取是一个 被动的处理过程意思是 你的 app 需要用一个对话 来主动发起标签 读取这一行为
第二你的程序必须处在 前台和可视状态中 才能开始 读取这一行为 如果你的 app 转为后台 或是转为不可见时 也将被终止 也将被终止
还有标签读取的行为 被限制在每次 60 秒钟 如果会话过期或未经过验证 你的程序必须 建立一个新的对话 发起一个新的标签读取 行为 你可以设置对话 让它读取单个标签 或是多个标签 在读取单个标签的状态下 标签读取完成之后 对话会自动终止 然而读取多个标签的对话 将始终保持在活动状态 直到被用户终止 或是 60 秒后 对话过期
最后像之前提到的那样 你的属性清单中定义的
“NFC 使用字符串” (NFC Usage String) 在标签读取的过程中 将会被显示给用户 我们在这个演讲中 提供了一个应用程序的示例 来示范怎样使用 Core NFC 比如说你想 清点库存
在这里我们展示了 用户与示例应用程序交互的 一些关键步骤 示例应用程序包括 一个主要的表格视图 和一个扫描键 每次扫描一件库存商品的时候 表格中就出现新的一行 显示该记录
只需点击扫描键 来开始扫描标签 这一用户界面 在扫描过程开始后 最好是显示在 你的程序视图的最前面
在标签扫描的过程中 描述的字串显示在 用户界面中
用户可以随时点击取消键 终止标签扫描的过程 这将会终止读取的 对话过程 当一个 NFC 标签被成功读取后 用户界面会被更新
在这里我们将读取对话 设置为读取 单个标签的模式
最后当读取标签的对话结束之后 叠加在前面的用户界面会消失 应用程序会变回为 最前面的视图 好 让我们一起看一下 这个示例 应用程序的代码 总体来说在你的 app 中 你需要简单的 3 个步骤 来实现标签的读取 首先使用 NFCNDEFReaderSessionDelegate 协议
然后创建 NFCNDEFReaderSession 这一类的 一个对象 并委托(delegate) 首先使用
最后用 Begin 这一方法 开始读取(reader)对话 并处理委托的回调 这里有实例应用中的一段代码 来说明这三个步骤
首先我们在代码中 引用了 Core NFC 框架
这里我们在表格视图控制器里 使用了委托 它将会处理 两个必要的回调
它们处理错误 并识别 NDEF 错误回调 在读取标签的活动停止的时候 将会通知你的 app
这可能由一系列的 原因引起 例如在读取单个标签的对话中 一个标签被 成功的读取了 或是用户 停止了扫描 或是 60 秒钟的时限超时了 或者是程序 不在前台了 在第一个变量中指定的对话
在程序退出之后 就无效了 要读取新的标签 需要一个新的 reader 对话
每次 NDEF 从一个标签中被读取的时候 检测 NDEF 就会被激活
你的 app 就可以 从 NDEF 信息中获取其携带的数据 解码并适当的 处理信息
最后我们外加一个方法 给扫描按钮 让它开始一个读取 单个标签的对话
你需要做的只是 用你的委托 创造一个 NFCNDEFReaderSession 的对象 然后调用 begin 这一方法 来开始标签扫描 如果你希望创建一个 读取多个标签的对话 将 invalidateAfterFirstRead 设为否(False) 如果你需要在程序中 停止一个进行中的对话 你可以调用 invalidate 这一方法
这将会激活你的 invalidate 产生错误回调 告诉你这个对话 结束了
总的来说跟随这些步骤 用 Core NFC 来实现 NFC 标签读取 是很简单的
启用 NFC 标签读取功能 保证扫描使用描述字串 (Scan UsageDescription String) 在你的属性列表中
在你的代码中结合 Core NFC 框架 然后开始读取标签
关于这个演讲的更多信息 以及我们的示例代码 请访问这个链接
还有这里有一些 大家可能感兴趣的 其他演讲
“隐私和你的 app” 将会讨论 重要的 与隐私相关的话题
“Apple Pay and Wallet 的最新发展” 将会讨论激动人心的、最新将推出的 iOS 与 Mac OS 中的 Apple Pay 功能 感谢观看 这个关于 Core NFC 框架 的演讲
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。