不用慌,iPhone 和 iPad Apps 可以在 VisionOS 上无缝兼容

7,387 阅读2分钟

苹果推出新的 XR 平台 VisionOS 后,大家最关心的就是自己的 iPhone 和 iPad app 能不能在新平台上使用,适配迁移成本高不高。好消息是,大部分的 app 可以不用改动一行代码就能跑在 VisionOS 上。

image.png

窗口

如果是 iPad 应用,在 VisionOS 上会默认使用横屏展示。

Image.png

如果是 iPhone only 的app,则会以竖屏渲染。

Image.png

如果你的窗口支持不同方向的布局(在 iPad 上的应用可能会有这个特性),会在窗口的右上角增加一个旋转的按钮。

Image.png

窗口默认支持缩放,其实就和在mac上软件一样。如果缩放小于窗口预设的最小值,会回弹到最小值。

需要单独处理

VisionOS 上的 app 渲染的时候方向只考虑 app info.plist 里指定的方向,不会根据 app 具体页面的方向设置自动旋转(在真实物理世界里没有屏幕尺寸限制,没有必要横屏获得更大的空间)。如果你的App 使用过程中有类似屏幕旋转的功能(有的app 只支持竖屏,播放视频的时候会横屏),需要做一些适配。

输入和交互

最常见的选中和滑动在 VisionOS 都有对应的交互方式(眼球追踪点选,手指捏合选中)。

image.png

有一个小区别是因为手指捏合当做一个tap,所以一只手只能模拟一根手指。因此在 VisionOS 里最多只能同时识别到两个touch。如果原来 app 里有一个手势是三指上滑,在 VisionOS 就要做一些交互改动了。

VisionOS 也支持 trackpad、蓝牙键盘的接入。所以原来的 app 交互方式在 VisionOS 中都可以很好的兼容。

授权

在 VisionOS 上没有 faceId 和 touchId,但是系统会做自动兼容。当请求授权时会调用 opticId(虹膜)进行授权。

Image.png

位置

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