大多数浏览器和
Developer App 均支持流媒体播放。
-
在共享空间中运行你的 iPad 和 iPhone App
了解如何在 Vision Pro 上运行现有的 iPad 和 iPhone App 。了解 iPadOS 和 iOS App 如何在此平台上运行,了解Designed for iPad 体验,并探索可用于增强 visionOS 上的 App 体验的路径。
章节
- 1:54 - Built-in behaviors
- 4:01 - Functional differences
- 10:03 - Choose your experience
资源
相关视频
WWDC23
-
下载
♪ 悦耳的器乐嘻哈 ♪ ♪ 大家好! 我叫 Kellie 是一名平台兼容性工程师 iPadOS 和 iOS 平台很强大 你可能已经为这两个平台 构建了一个或多个优秀的 App 现在 你可以轻松地 在 Apple 的最新平台上 运行这些 App 大多数 iOS App 的 界面都很美观 开箱即用 举个例子 我们看看 iPad 的日历 App 在模拟器中未经修改的运行情况 看起来和 iPad 如出一辙 功能也和预期的一样 我们可以看到不同的日程表 缩放特定事件的细节和添加新事件
Apple 地图在 iPad 版中 采用了我会在后面提到的一些建议 我可以流畅地旋转地球 也可以查到具体的目的地……
……并参观著名地标
我将通过本视频 为大家介绍这个新平台上的 iPad 和 iPhone App 我会从你的 App 能够 免费获取的内置行为说起
然后聊一聊你的 App 应该注意的功能差异 以及你该做些什么 最后 我会说明如何判定 为 iPad 设计的体验 是否是最适合你 App 的需求
我们基于 iOS 建立这个新平台 附加的系统支持 增强了这个共享基石 这两者的结合使得你的 App 能够更加流畅地运行 而不需要改变任何代码 iPad 和 iPhone App 以浅色模式外观窗口 显示在这台设备上 系统更倾向于 App 的 iPad 版横屏显示 但是如果你的 App 只支持 iPhone 系统就会按照 iPhone 的长宽比 竖屏显示这个 App 如果你的 App 支持旋转 窗口右上角的上方 就会出现一个旋转按钮 这样用户就可以 根据自己的喜好旋转场景 抓取 App 的边角 系统会以相同的长宽比缩放窗口 窗口尺寸达到最大或最小时 边角就会跳动 缩放由系统控制 所以你的 App 可以免费获得这些技术支持 用户通过自然操控 与设备上的内容互动 他们看着某些内容 然后手指轻点进行选择 或者伸出手来直接触摸内容 用户还可以使用蓝牙触控板 或者游戏控制器 所有这些系统定义的交互方法 所发送的事件 都是你 App 的常用事件 这样 你就可以继续利用 你使用过的相同的事件处理技术 像文件管理器和照片选取器 这样的系统视图 与系统外观相匹配 这样有助于你的 App 适应平台外观 如果你的 App 支持触控 ID 或者面容 ID LocalAuthentication 就会 通过 Optic ID 自动转发这些执行 所以不需要你做任何额外工作 你的 App 就支持 最新的认证技术 与 iOS 相比 这个平台也有稍许不同 这台设备上的 App 可以竖屏显示也可以横屏显示 这点和 iPad 相比不足为奇 和 iPad 不同的是 没有旋转整台设备的概念 因为设备的方向 不代表 App 的方向 如果想指定 App 更适合新场景的方向 用户可以通过系统旋转按钮 旋转场景 你可以在 App 的 Info.plist 文件里添加新的 UIPreferredDefaultInterface 方向键值 表达偏好 如果你不添加的话 系统就会使用默认方向 这个键值是这个平台独有的 并且不会影响其他平台 有几个 plist 键值 尽管不是新的 但是在这台设备上也有特殊意义 系统凭借 UISupportedInterfaceOrientations 来决定你 App 的窗口 是否需要旋转按钮 App Store Connect 借助 UIRequiredDeviceCapabilities 确定你的 App 是否兼容这台新设备 所有适用的 App 会自动上架 App Store 如果你的 App 依赖一些特定功能 而这些功能在这台设备上不可用 或者你的 App 在这个平台上无法运行 你可以在 App Store Connect 上 管理可用性 如果你想了解更多相关信息 你可以观看讲座 “探索空间计算的 App Store Connect” 如果需要 你可以花时间 把这些键值添加到 Info.plist 文件里 或者确认现有的值 仍然是准确的和最新的 手势在这台设备上的作用各不相同 因为用户利用眼睛和手 与内容进行互动 设备最多同时接受两个输入 由于每只手的触摸都是独一无二的 所有系统手势要求触摸两次甚至更少 才能无缝协作 设备也支持自定义手势识别器 但是为了能够流畅地使用手势操控 你需要对其进行更新 ARKit 是最新的框架之一 已经取得了显著的发展 并且比以往任何时候都强大 考虑到平台架构 和隐私需求的根本差异 我们已经从头开始 设计了新的 API 和体验 这就意味着你现有的 ARViews 和 ARSessions 在这台设备上的运行效果和 在 iPad iPhone 上不同 你可以查看视频 “重新想象 ARKit App 获得空间体验” 了解通过为平台重建 App 你能够利用的 所有 ARKit 新功能 这台设备的位置服务和 iPad 很相似 可以通过 Wi-Fi 获得大致位置 也可以通过 iPhone 共享位置 如果你想了解更多细节 请观看视频 “了解空间计算的 Core Location” Look to Dictate 是一种便捷的 新型输入技术 用户仅凭借眼睛和声音 就能够快速浏览 App 启用该功能后 一个麦克风图标就会出现在 搜索栏放大镜的位置 然后 你可以看着麦克风 并说出你想搜索的内容进行搜索
这个 API 接口在搜索栏上 默认情况下 iPad 和 iPhone App 在这个平台上运行时 该功能是禁用的 这样你就可以对行为进行验证 并决定什么时候启用这个功能 在 iOS 和 iPadOS 上 这是一个空操作指令 所以没有必要 限制平台的支持 你可以在 SwiftUI 里 通过向你的可搜索视图中添加 .searchDictationBehavior() 修饰符 启用该功能 对于 UIKit 搜索栏 你可以设置 isLookToDictateEnabled 为 true 使用可用性检查是你一直使用的方式 也是处理所有这些变化的最佳方式 确保在调用框架前 该框架是受到支持的 许多框架为了方便使用 甚至内置了这些功能 在访问依赖特定硬件的配置时 不要忘了确认 该硬件是存在的 例如 iOS 设备只有 前置和后置摄像头 相较之下 头戴显示设备的摄像头要多的多 但是 App 并不能 使用所有的摄像头 在你使用之前 要先验证 这个摄像头是否存在以及能否使用 这样的做法让你的 App 在每台设备上都能够平稳运行 而不仅仅是在这一台设备上 这只是一个这个平台上 框架演变的样本 部分框架 如 SwiftUI ARKit 和 RealityKit 已经取得了很大的发展 并且专门针对这台设备制作了视频 其余大多数框架都和以前一样运作 只需要对采用方式做出一些调整 你可以在开发者文档中 查询到所有修改的框架的详细信息 现在 你已经了解了 你的 App 有哪些代码是要修改的 是时候开始行动了 xrOS SDK 安装好后 Xcode 会自动 把 xrOS Device (为 iPad 设计) 添加到使用 iOS SDK 项目的 Supported Destinations 中 如果你的方案为 SDK 设置了 不同的平台或自动设置了平台 你可以手动添加 为 iPad 设计的目标 设置完成后 一个有匹配名称的运行目的地 就会出现在目标选取器里 选中这个目标 然后构建并运行 以上就是所有步骤 这台设备上的 iPad 和 iPhone App 给用户带来了奇妙的体验 有了广泛的系统支持 大多数 App 无需改变代码 你可以根据你的目标 决定是坚持用 iOS SDK 构建你的 App 还是用 xrOS SDK 重建你的 App 就像我之前提到过的 每个 SDK 有不同的框架 每个框架内 支持的功能也不同 在这里 我要强调一下 只有 iOS SDK 才有的两个框架 那就是 SpriteKit 和 Storyboard 如果其中任何一项技术 是你的 App 不可或缺的 那么你就需要 坚持为 iPad 设计 在和 iPad 如出一辙的窗口里 iPad 和 iPhone App 以浅色模式外观显示 这是放大悉尼歌剧院后 Apple 地图的样子 注意内容是如何填充到窗口边缘 却又没有超出窗口边缘的 并且所有颜色都和 Apple 地图 在 iPad 和 iPhone 上 使用的浅色模式一致 为 xrOS 设计的 App 解锁了另一级别的沉浸式空间体验 有一些框架 如 ARKit 和 RealityKit 已经发展了一些功能 这些功能仅在 为此平台设计的 App 中使用 请参阅其他视频或文档 了解所有由于这些更新 可能出现的新体验 除了窗口 为这台设备设计的 App 还支持空间容器 用以在容器中显示 3D 物体 并且这些 3D 物体 会随着内容的变化而增长 此外 能让用户获得沉浸式体验的 Immersive Spaces 也受到支持 这是戴上头显设备后 Keynote 讲演排练空间的样子 通过隐藏环境和其他 App Keynote 讲演让你完全沉浸在 你的演示中 在头显设备和模拟器中 为这个平台设计的 App 都使用系统外观 他们的背景采用的是玻璃材料 让用户置身于周围的环境中 并动态调整颜色平衡和对比度 来提高可读性 这些 App 也能利用新的 Ornament API 就像照片左边的标签栏和底部的按钮 这些固定在窗口边上的装饰 增强了窗口的功能 也给 App 留下了更多空间 在窗口内绘制 这些装饰最常见的用法 是用于导航或工具栏 如果你想让你的 App 创造沉浸式体验 采用新的框架功能 或者和系统外观相匹配 那么为 xrOS 设计 是你的完美选择 如果你更想 保留你 App 的现有体验 那么为 iPad 设计比较适合你 这个平台与 iOS、 iPadOS 共享基础 所以不管你选择哪个 SDK 你为平台做出的努力 都将对你 在这个平台上的体验大有裨益 如果你决定为这个新平台设计 最适合你的 App 通过视频“使用 SwiftUI 进行空间计算”及 “使用 UIKit 进行空间计算” 进行了解是不错的开始 下一步就是 尝试在这个振奋人心的新平台上 运行你的 App 大多数 App 不需要改变任何代码就能顺利运行 请特别注意我提过的兼容性区域 请确保你 App 的 Info.plist 键值是最新的 选择你感兴趣的新平台体验 并且 在你使用框架之前 验证框架依赖项是可获得的 如果这些你都做到了 请观看视频 “增强共享空间的 iPad 和 iPhone App” 来了解如何让你的 iOS App 在这台设备上配适运行 感谢观看 我期待能在这个新平台上 试用你的 App ♪
-
-
4:37 - Default orientation Info.plist key
UIPreferredDefaultInterfaceOrientation
-
5:03 - Supported orientations Info.plist key
UISupportedInterfaceOrientations
-
5:13 - Required capabilities Info.plist key
UIRequiredDeviceCapabilities
-
7:59 - Look to Dictate enablement
// SwiftUI @State private var searchText = "" var body: some View { NavigationStack { Text("Query: \(searchText)") } .searchable(text: $searchText) .searchDictationBehavior(.inline(activation: .onLook)) } // UIKit let searchController = UISearchController() searchController.searchBar.isLookToDictateEnabled = true
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。