屏幕方向
Capacitor 应用中的屏幕方向
许多应用在竖屏和横屏设备方向下都能正常工作。但是,也有很多应用不适合这样做,并且有充分的理由要求应用完全或偶尔在一种或另一种模式下运行。
全局方向设置
要在 Capacitor 应用中设置全局方向设置,您需要为您所针对的平台设置必要的配置值。
iOS 配置
iOS 允许在 iPhone 和 iPad 上支持不同的屏幕方向。要限制允许的方向,请打开 Xcode 并打开 Info.plist 文件。找到以下键:Supported interface orientation 和 Supported interface orientation (iPad)。使用这些值,指定您希望为 iPhone 和 iPad 支持的不同方向。
如果直接编辑 Info.plist 文件,请查找以下键:UISupportedInterfaceOrientations 和 UISupportedInterfaceOrientations~ipad。例如,以下设置将限制 iPhone 的方向为正向竖屏,iPad 为任意横屏方向:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
</array>
Android 配置
在 Android 上,可以通过修改 AndroidManifest.xml 并在主应用 Activity 的 <activity> 条目上设置 android:screenOrientation 来设置方向。请参阅 Android Manifest 文档 了解可能的条目详情。
动态方向设置
许多应用需要支持多种方向,并能够根据内容偶尔锁定方向。
Capacitor 通过 @capacitor/screen-orientation 插件支持此功能:
npm install @capacitor/screen-orientation
npx cap sync
然后,使用 lock 和 unlock 方法:
import { ScreenOrientation } from '@capacitor/screen-orientation';
...
await ScreenOrientation.lock({ orientation: 'portrait' });
await ScreenOrientation.lock({ orientation: 'landscape' });
// 解锁方向将恢复到全局设置:
await ScreenOrientation.unlock();
查看方向插件文档了解全部可能的方向值和配置选项。
iPad 方向锁定
默认情况下,iPad 允许多任务处理,其方向无法锁定。如果您需要在 iPad 上锁定方向,通过将以下内容添加到 Info.plist 中将 Requires Full Screen 选项设置为 YES:
<key>UIRequiresFullScreen</key>
<true/>