跳过内容

继续从 Getting Started

GitHub

安装

安装

您可以使用我们的AI辅助设置来安装插件。使用以下命令将Capgo技能添加到您的AI工具中:

终端窗口
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

然后使用以下提示:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-screen-orientation` plugin in my project.

如果您更喜欢手动设置,请运行以下命令并按照以下平台特定的说明进行操作:

终端窗口
bun add @capgo/capacitor-screen-orientation
bunx cap sync
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';

API概述

API 概述

orientation

屏幕方向

获取当前屏幕方向

返回设备屏幕当前方向

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
const result = await ScreenOrientation.orientation();
console.log('Current orientation:', result.type);

锁定屏幕方向到特定类型。

锁定屏幕到指定方向。 在 iOS 上,如果 bypassOrientationLock 为 true,会使用运动传感器开始跟踪物理设备方向。

注意:UI 还是会尊重用户的方向锁定设置。 运动跟踪允许您检测设备如何物理上被握持,即使 UI 没有旋转。

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Standard lock
await ScreenOrientation.lock({ orientation: 'landscape' });
// Lock with motion tracking on iOS
await ScreenOrientation.lock({
orientation: 'portrait',
bypassOrientationLock: true
});

__CAPGO_KEEP_0__ 概述

根据设备位置自由旋转屏幕。 此外,如果之前已启用,则停止任何基于运动的方向跟踪。

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
await ScreenOrientation.unlock();

startOrientationTracking

开始跟踪设备方向

此方法有助于独立于屏幕方向锁定跟踪设备的物理方向。 它使用 Core Motion 在 iOS 中检测方向变化。

复制到剪贴板

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
await ScreenOrientation.startOrientationTracking({
bypassOrientationLock: true
});
// Listen for changes
ScreenOrientation.addListener('screenOrientationChange', (result) => {
console.log('Orientation changed:', result.type);
});

复制到剪贴板

检查设备方向锁定是否当前已启用。

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
await ScreenOrientation.stopOrientationTracking();

isOrientationLocked

复制到剪贴板

复制到剪贴板

该方法将物理设备的方向(通过运动传感器)与UI的方向进行比较。如果两者不一致,屏幕方向锁定将被启用。

注意:此功能需要通过startOrientationTracking()或lock()(bypassOrientationLock:true)激活运动跟踪功能。该功能在iOS(Core Motion)和Android(Accelerometer)上都可用。

import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Start motion tracking first
await ScreenOrientation.startOrientationTracking({
bypassOrientationLock: true
});
// Check lock status
const status = await ScreenOrientation.isOrientationLocked();
if (status.locked) {
console.log('Orientation lock is ON');
console.log('Physical:', status.physicalOrientation);
console.log('UI:', status.uiOrientation);
}

类型参考

类型参考

ScreenOrientationResult

屏幕方向结果

复制到剪贴板

export interface ScreenOrientationResult {
/**
* The current orientation type.
*
* @since 1.0.0
*/
type: OrientationType;
}

OrientationLockOptions

复制到剪贴板

开始屏幕方向跟踪选项

export interface OrientationLockOptions {
/**
* The orientation type to lock to.
*
* @since 1.0.0
*/
orientation: OrientationLockType;
/**
* Whether to track physical device orientation using motion sensors.
* When true, uses device motion sensors to detect the true physical
* orientation of the device, even when the device orientation lock is enabled.
*
* **Important:** This does NOT bypass the UI orientation lock.
* The screen will still respect the user's orientation lock setting.
* This option only affects orientation detection/tracking - you'll receive
* orientation change events based on how the device is physically held,
* but the UI will not rotate if orientation lock is enabled.
*
* Supported on iOS (Core Motion) and Android (Accelerometer).
*
* @default false
* @since 1.0.0
*/
bypassOrientationLock?: boolean;
}

StartOrientationTrackingOptions

__CAPGO_KEEP_0__

使用运动传感器开始跟踪屏幕方向的选项。

export interface StartOrientationTrackingOptions {
/**
* Whether to track physical device orientation using motion sensors.
* When true, uses device motion sensors to detect the true physical
* orientation of the device, even when the device orientation lock is enabled.
*
* **Important:** This does NOT bypass the UI orientation lock.
* This only enables detection of the physical orientation.
*
* Supported on iOS (Core Motion) and Android (Accelerometer).
*
* @default false
* @since 1.0.0
*/
bypassOrientationLock?: boolean;
}

方法isOrientationLocked()返回的结果。

export interface OrientationLockStatusResult {
/**
* Whether the device orientation lock is currently enabled.
*
* This is determined by comparing the physical device orientation
* (from motion sensors) with the UI orientation. If they differ,
* orientation lock is enabled.
*
* Available on iOS (Core Motion) and Android (Accelerometer) when motion tracking is active.
*
* @since 1.0.0
*/
locked: boolean;
/**
* The physical orientation of the device from motion sensors.
* Available when motion tracking is active (iOS and Android).
*
* @since 1.0.0
*/
physicalOrientation?: OrientationType;
/**
* The current UI orientation reported by the system.
*
* @since 1.0.0
*/
uiOrientation: OrientationType;
}

描述设备屏幕方向状态的方向类型。

export type OrientationType = 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary';

用于锁定设备屏幕方向的方向锁定类型。

export type OrientationLockType =
| 'any'
| 'natural'
| 'landscape'
| 'portrait'
| 'portrait-primary'
| 'portrait-secondary'
| 'landscape-primary'
| 'landscape-secondary';

真实数据来源

源头真相

该页面由插件生成 src/definitions.ts当公共API上游更改时,请重新运行同步

继续从 Getting Started

继续从 Getting Started

如果您正在使用 Getting Started 来规划原生媒体和界面行为,连接它与 使用 @capgo/capacitor-screen-orientation 为原生能力在使用 @capgo/capacitor-screen-orientation 中 使用 @capgo/capacitor-live-activities 为原生能力在使用 @capgo/capacitor-live-activities 中 @capgo/capacitor-live-activities 了解 @capgo/capacitor-live-activities 的实现细节 使用 @capgo/capacitor-video-player 了解使用 @capgo/capacitor-video-player 的原生能力 @capgo/capacitor-video-player 了解 @capgo/capacitor-video-player 的实现细节