苹果推出新的 XR 渠道 VisionOS 后,我们最关心的就是自己的 iPhone 和 iPad app 能不能在新渠道上运用,适配搬迁成本高不高。好消息是,大部分的 app 能够不必改动一行代码就能跑在 VisionOS 上。
窗口
假如是 iPad 使用,在 VisionOS 上会默认运用横屏展现。
假如是 iPhone only 的app,则会以竖屏烘托。
假如你的窗口支撑不同方向的布局(在 iPad 上的使用可能会有这个特性),会在窗口的右上角添加一个旋转的按钮。
窗口默认支撑缩放,其实就和在mac上软件一样。假如缩放小于窗口预设的最小值,会回弹到最小值。
需求单独处理
VisionOS 上的 app 烘托的时候方向只考虑 app info.plist 里指定的方向,不会根据 app 详细页面的方向设置主动旋转(在实在物理世界里没有屏幕尺寸限制,没有必要横屏获得更大的空间)。假如你的App 运用过程中有相似屏幕旋转的功能(有的app 只支撑竖屏,播放视频的时候会横屏),需求做一些适配。
输入和交互
最常见的选中和滑动在 VisionOS 都有对应的交互方法(眼球追寻点选,手指捏合选中)。
有一个小区别是由于手指捏合当做一个tap,所以一只手只能模仿一根手指。因此在 VisionOS 里最多只能一起识别到两个touch。假如本来 app 里有一个手势是三指上滑,在 VisionOS 就要做一些交互改动了。
VisionOS 也支撑 trackpad、蓝牙键盘的接入。所以本来的 app 交互方法在 VisionOS 中都能够很好的兼容。
授权
在 VisionOS 上没有 faceId 和 touchId,但是系统会做主动兼容。当请求授权时会调用 opticId(虹膜)进行授权。
位置
Vision pro 没有 gps 定位。现在位置信息是经过衔接的 wifi 获得,或者是经过同享的 iPhone 提供。
需求重写的部分
VisionOS 上的 ARKit 是一个全新的框架,本来 app 假如有用到 ARKit 的东西,在新系统上要重新适配。能够参阅这个视频 Evolve your ARKit app for spatial experiences。同理假如 iOS app 上有运用到 SpriteKit,也需求做搬迁,用 ARKit 或者 RealityKit 实现。
Vision pro 虽然有许多摄像头,但是没有开放权限给 app。所以本来 app 里调用前置、后置摄像头的代码要做修改。
Run your iPad and iPhone apps in the Shared Space