更新记录
1.0.2(2026-03-29)
修改成异步返回
1.0.1(2026-03-29)
增加获取当前屏幕是竖向时还是横向
1.0.0(2026-03-29)
ios旋转屏幕
查看更多平台兼容性
uni-app(4.87)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | √ | √ | × | 13 | 1.0.1 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.85)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | × | 13 | × | × |
dui-rotate
uni-app x 下通过 UTS 在 App Android / App iOS 动态切换横竖屏的插件(iOS 使用 UTS 原生混编 Swift)。
在页面中引入
import {
setAppScreenOrientation,
setLandscape,
setPortrait,
setOrientationSensor,
getScreenOrientation
} from '@/uni_modules/dui-rotate'
类型见 uni_modules/dui-rotate/utssdk/interface.uts(SetScreenOrientationOptions、SetScreenOrientationCallbacks 等)。
API(异步回调)
设置朝向均在主线程异步完成,通过 success / fail / complete 获知结果(与常见 uni API 习惯一致)。
| 方法 | 说明 |
|---|---|
setAppScreenOrientation(options) |
options.mode 必填,可选 success、fail、complete |
setLandscape(callbacks?) |
固定横屏,回调对象可选 |
setPortrait(callbacks?) |
固定竖屏 |
setOrientationSensor(callbacks?) |
跟随传感器 |
getScreenOrientation(): string |
同步读取当前界面朝向 'portrait' / 'landscape' |
SetScreenOrientationOptions
mode:portrait、landscape、reverse-portrait、reverse-landscape、sensor、sensor-portrait、sensor-landscape、full-sensor、user、nosensorsuccess(res):res.errMsg一般为'ok',res.mode为本次请求的 modefail(err):err.errMsg、err.errCode、err.modecomplete(res):无论成功失败都会调用;参数与success的res或fail的err同结构(需自行用errCode等区分)
错误码 errCode
| 值 | 含义 |
|---|---|
9010001 |
Android:getUniActivity() 为空 |
9010002 |
iOS:requestGeometryUpdate 失败(系统回调错误) |
说明:成功表示已提交旋转请求(Android 已调用 setRequestedOrientation;iOS 已走几何更新或 legacy 路径),不保证系统最终动画与硬件状态与预期完全一致。iOS 16+ 在约 120ms 内若未收到几何错误则视为成功。
工程配置(iOS)
pages.json → globalStyle 建议 "pageOrientation": "auto",否则 iPhone 可能仅竖屏。详见 启动界面方向。
uvue 示例
<script setup lang="uts">
import { setAppScreenOrientation } from '@/uni_modules/dui-rotate'
function lockLandscape() {
setAppScreenOrientation({
mode: 'landscape',
success: (res) => {
console.log('ok', res.mode, res.errMsg)
},
fail: (err) => {
console.log('fail', err.errCode, err.errMsg)
},
complete: (res) => {
console.log('complete')
}
})
}
</script>

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 2
赞赏 0
下载 11936685
赞赏 1914
赞赏
京公网安备:11010802035340号