大多数浏览器和
Developer App 均支持流媒体播放。
-
了解空间计算的 Core Location
了解 Core Location 如何帮助你的 App 在世界上找到自己的位置——字面意义上的。我们将分享如何构建一个空间计算 App,该 App 在使用个人位置的同时尊重他们的隐私。你还将了解你的 App 如何请求位置访问权限,以及 Core Location 如何适应来自兼容 iPad 和 iPhone App 的请求。
资源
相关视频
WWDC23
WWDC19
-
下载
♪ 悦耳的器乐嘻哈 ♪ ♪ 大家好! 我是 Ilya Veygman Core Location 的工程师 今天我来向你介绍 关于空间计算的 Core Location 无论你是全新进入 Apple 生态系统的开发者 还是有经验的 App Store 开发者 你可能对该系统的功能 有很多疑问 visionOS 非常擅长展示你的想象成果 而 Core Location 则帮助你 在现实世界中获得定位锚点 今天 我将向你介绍 如何使用 Core Location 做到这一点 对于那些刚接触 Apple Developer 生态系统的开发者 欢迎! 我想先从一个简单的示例开始 向你展示 将位置信息添加到你的 App 中 是多么简单直观 对于有经验的开发者来说 回顾基础知识也是很有益的 因此 让我们先看一下 与此演示相关的示例代码 该示例与我的同事的讲座 “探索简化的位置更新” 相关 在这个示例中 我们从 CLLocationUpdate 请求实时更新 并在这里以异步方式 获取这些更新 有关位置更新 API 的更多详细信息 请参考与此演示相关的讲座 App 在访问位置等敏感信息之前 必须请求用户的许可 因此在这里 我们调用此 API 来实现许可请求 在这个简单的示例中 我们在视图初始化时执行此操作 我们还必须确保在构建设置下的 App 信息中设置该字符串 再次强调 在获取位置等敏感信息之前 App 必须请求用户的许可 而这个字符串则解释了 为什么需要请求用户的许可 该字符串稍后会在提示框中 向用户显示 以请求访问权限 我们来看看 在模拟器中运行时的效果 同样 在这个 App 中 因为这是一个简单的示例 我们直接请求位置访问权限 但对于你的 App 情况可能并非总是如此 你可以看到 我们会收到一个提示 询问用户 是否允许访问他们的私密信息 在继续之前 让我们更详细地了解 Core Location 在这个系统中如何处理用户的隐私 即使你是 我们开发者生态系统的新手 你可能也已经意识到 Apple 非常注重 用户体验中的隐私问题 位置访问也不例外 首先 在获取地理位置更新之前 你必须先向用户请求 访问位置信息的许可 如果没有用户的许可 将无法获取位置更新 你可以通过创建位置管理器并调用 requestWhenInUseAuthorization 同时 在 App 的 Info.plist 文件中设置使用说明字符串 来请求用户的许可 这再次向用户说明 为何你的 App 需要了解他们的位置 最后 开发者应 仅在 App 实际需要时 请求此访问权限 这不仅在隐私方面更有优势 还能增加用户允许访问的可能性 回想一下 我们在示例代码中这样处理 是因为它是一个非常简单的示例 会立即开始请求位置更新 那么 这个提示是什么样的? 它显示了什么内容? 用户将从 App 中看到一个 类似于这里的提示框 对于那些有 iOS 开发经验 的开发者来说 这可能会很熟悉 用户可以在使用 App 时授予 位置访问权限 也可以完全拒绝 用户还可以选择使用突出显示的按钮 授权你的 App 获取其精确位置 或近似位置的信息 就像在 iOS 上一样 有关精确位置和大致位置 如何工作的详细信息 请观看之前我为大家介绍的 WWDC20 中的 “定位的新增功能” 回到演示 在我们授予 该 App 对精确位置的访问权限 并在使用过程中进行授权后 我们现在可以开始获取位置更新 并看到我们的 App 获取位置更新 那么 “精确位置”到底是什么意思? 该头显设备 能够多准确地了解用户的位置? 对于单独的设备来说 你应该期望与 Mac 类似的准确性 约为 100 米 对于查找附近餐厅、公园 和其他景点的 App 来说 这已经足够了 然而 如果你的 iPhone 在附近 该设备可以利用 两者之间的现有连接 将你从头显设备中获得的定位准确度 提高到与 iPhone 相同的水平 你的设备与其他 Apple 硬件 一起使用时效果更佳 这为在这样的空间计算系统上 运行的 App 打开了全新的应用领域 例如精确的天气更新、 地理标记功能等 不管是新手还是有经验的开发者 应该都听我说过 当用户正在使用 App 时 App 有资格获取位置更新 对于 iPhone 或 Watch 这样的平台 这是显而易见的 但对于我们来说 “用户正在使用 App” 意味着什么? 毕竟这个平台的用户体验 与在 iPhone 或 Watch 上有很大的区别 所以 让我们来谈谈这个问题 我们来回顾一下 2019 年的 “Core Location 的新增功能” 如何以及何时将前台 App 视为在 iOS 上处于使用状态 对于像 iPhone 这样的平台 这是相当明显的 任何时候 只能有一个 App 在前台运行 此外 在 App 退到后台后 还有一个短暂的宽限期 此时它仍然可以获取位置更新 那么在这里呢? 在这个平台上 你的 App 可以是完全沉浸式的 也可以是在类似窗口的形式下运行 你可能会想知道 “Core Location 如何处理这种情况?” 对于完全沉浸式的体验 这是直接的 只要用户运行你的 App 我们就认为它正在使用中 并有资格获取位置更新 前提是用户已经同意 将他们的位置提供给你的 App 在这个系统上 只要用户最近查看了 App Core Location 就会 向你的 App 提供位置信息 因此 在用户 已经同意将位置提供给它们 并且最近查看了 App 的情况下 我们认为在窗口中运行的 App 有资格获取位置更新 我们来更具体地研究一下 想象一下 这两个 App 都已被授权 在使用时访问用户的位置 只要用户不与任何一个 App 进行交互或查看 它们都无法获取位置更新 如果用户开始查看 即与左侧的 App 交互 那么该 App 现在可以获取位置更新 而右侧的 App 仍然无法获取 即使它恰好也在用户的周边视野中 直到用户查看其他地方 例如右侧的 App 或者将两个 App 移动在一起 以便可以同时查看 两个 App 这种情况才会改变 就像在 iOS 中一样 Core Location 会认为 App 不再被使用之前还有一个宽限期 这意味着如果用户先看左侧的 App 然后看右侧的 App 而不是立即看其他地方 会有一个短暂的时间段 几秒钟 此时两个 App 仍然有资格获取位置信息 直到 Core Location 将这些 App 视为不再使用 我们认为这样的位置访问模型 在尊重用户隐私的同时 为该平台上提供了良好的体验 因为用户不会在未经允许 或不知情的情况下被跟踪其位置 特别是因为该设备 旨在交互使用 而不是像放在背包中那样被藏起来 因此 在 App 不运行时 App 将无法获取位置更新 同样地 来自我们的监测 API 的更新 将不会被传递 这就引出了另一个问题 许多已经在 Apple 平台上 开发了使用位置功能的 App 的开发者 可能也会对此产生疑问: 当我的 App 在兼容模式下运行时 它会有什么表现? 如果我在运行 visionOS 的设备上 运行我的 iPhone 或 iPad App 而不更改任何代码 会发生什么呢? 我们来详细讨论一下 正如之前所讨论的 “在使用期间”的 “使用中” 源于用户最近查看过的位置 只有当用户查看 App 时 App 才有资格获取位置信息 那么 对于请求“始终允许”的 App 呢? 提示“始终允许”的 App 的请求 将被重定向为请求在使用期间授权 同样 你会发现在你的 App 设置中 “始终允许” 不是一个选项 在此系统上 位置最适合在你的 App 被使用时 单次或连续更新 如果你兼容的 iPhone 或 iPad App 使用区域监控或我们的新 CLMonitor 它将无法接收到事件 请考虑一下 如果你的 iOS App 设定某个特定的 API 总是受支持 并且如果监控 API 从未传递事件 那么你的 App 可能会出现意料之外的行为 请考虑你的 App 是否依赖于 在后台获取位置更新 而 App 未运行的情况 要进一步了解 有关我们 API 的更多信息 特别是今年的新内容 我建议你观看我的同事们的 其他两个讲座 以及我们之前几年的其他讲座 特别是如果你是我们 生态系统的新手 更要记得去观看 “探索简化的位置更新” 该讲座探讨了 API 的一些新发展 特别是关于我们建议 如何获取位置更新 以及我们如何使 API 与 Swift 并发更兼容的方式 “认识 Core Location Monitor”进一步讨论了 监测 API 的新发展 以及我们如何 重新构思 App 接收地理位置 进入和退出等事件的方式 如果位置对你的 App 很重要 我相信你会发现 花时间观看这些讲座是非常值得的 visionOS 提供了一种非常酷的体验 我相信开发者中的许多人 期待已久 我们也一直在努力 以确保 你能够提供最佳的用户体验 无论是为了针对此设备 专门设计的 App 还是针对兼容的 iPhone 或 iPad App 我们还希望确保以最好的方式 尊重用户的隐私 并且对于那些在我们的 App Store 中 现有 App 的开发者来说 尽可能无缝地过渡到这个平台 话虽如此 请考虑你的兼容 App 在不接收 有关区域更改或访问的通知的情况下 会作何反应 我强烈建议你观看 其他关于 Core Location 和空间计算的讲座 这些可能会引起你的兴趣 谢谢观看 祝你享受 WWDC 的其他讲座 ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。