更新记录
1.0.0(2026-10-18)
兼容蒸汽模式
平台兼容性
uni-app(5.26)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| × | √ | × | × | √ | × | √ | √ | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(5.26)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | × | × |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 蒸汽模式 |
|---|---|---|---|
| × | × | × | √ |
亮度常亮 X
适合阅读、扫码、视频、导航等前台页面。统一控制屏幕亮度与常亮,附带可直接复制的演示页。
- 调亮度:0~100%,读取当前状态,恢复修改前的亮度。
- 防息屏:开启或关闭屏幕常亮,页面退出时可恢复原状态。
- 直接接入:
.uvue与.vue示例、操作结果和错误码、系统设置入口。
| 项目 | 页面文件 | 支持平台 |
|---|---|---|
| uni-app x Vapor / VDOM | index.uvue |
Android、iOS |
| uni-app Vue3 | index.vue |
Android、iOS App |
使用 HBuilderX 5.26 或以上。这是 UTS API 插件,不包含原生视图组件。Web、小程序、鸿蒙不提供屏幕控制能力。
4 步运行演示
1. 导入插件
从插件市场导入项目,确认目录存在:
uni_modules/austin-screen-x/
2. 制作并选择自定义基座
在 HBuilderX 选择目标项目,制作 Android 或 iOS 自定义调试基座。打包完成后安装基座,在“运行到手机或模拟器”中选择自定义基座。
首次导入、升级插件原生代码后需要重新制作基座;只修改演示页面不需要重新制作。iOS 真机基座使用该 App 对应的 .p12 与 .mobileprovision,本插件不需要额外证书或 .p8。
3. 复制页面
按自己的项目类型选择一个文件,复制完整内容:
| 项目 | 从插件内复制 | 保存到项目 |
|---|---|---|
| uni-app x | uni_modules/austin-screen-x/index.uvue |
pages/screen/index.uvue |
| uni-app Vue3 | uni_modules/austin-screen-x/index.vue |
pages/screen/index.vue |
页面内部已使用 @/uni_modules/austin-screen-x,复制后无需修改 import。
4. 注册并打开页面
在项目 pages.json 的 pages 数组内添加:
{
"path": "pages/screen/index",
"style": { "navigationBarTitleText": "亮度与常亮", "disableScroll": true }
}
uni-app x 页面内部使用 scroll-view,保留 disableScroll: true;普通 uni-app 项目可省略此项。
从已有页面打开:
uni.navigateTo({ url: '/pages/screen/index' })
先点 25%、75% 观察亮度,再打开常亮。返回上一页后,演示页会恢复自己改动过的亮度与进入时的常亮状态。
项目权限
无需在 manifest.json 增加本插件专用权限。 不需要麦克风、录音、相机或定位权限,也不需要 Android WRITE_SETTINGS 授权弹窗。
| 平台 | 亮度与常亮的作用范围 | 点“打开设置”后 |
|---|---|---|
| Android | 当前 Activity 窗口,不写入系统全局亮度 | 系统显示设置 |
| iOS | 当前前台屏幕;常亮使用应用的自动锁屏控制 | 当前 App 的系统设置页 |
常亮用于防止前台自动息屏,不能阻止用户按电源键锁屏,也不用于后台保活。iOS 不提供通过本接口直接打开系统“显示与亮度”页的入口。
在自己的页面调用
下面代码放入 uni-app x 页面的 <script setup lang="uts">:进入页面设置 75% 亮度并开启常亮,退出时恢复原状态。
import { getScreenState, setBrightness, resetBrightness, setKeepScreenOn, ScreenState, BrightnessOptions } from '@/uni_modules/austin-screen-x'
let initial: ScreenState | null = null
let brightnessChanged = false
let keepChanged = false
onLoad(() => {
initial = getScreenState()
const options: BrightnessOptions = { value: 0.75 }
const brightnessResult = setBrightness(options)
const keepResult = setKeepScreenOn(true)
brightnessChanged = brightnessResult.ok
keepChanged = keepResult.ok
console.log(brightnessResult, keepResult)
})
onUnload(() => {
const original = initial
if (original == null) return
if (brightnessChanged) {
if (original.usingCustomBrightness) {
const options: BrightnessOptions = { value: original.brightness }
setBrightness(options)
} else resetBrightness()
}
if (keepChanged) setKeepScreenOn(original.keepScreenOn)
})
uni-app Vue3 使用相同 API,删除 ScreenState、BrightnessOptions 类型导入及相应类型标注,并从 @dcloudio/uni-app 导入 onLoad、onUnload。
每次操作可检查返回值的 ok、errCode、errMsg。openSystemSettings() 请只在用户点击设置按钮时调用。
页面退出时恢复
插件本身不会自动恢复。演示页在 onUnload / onBeforeUnmount 时恢复;切到后台触发的 onHide 不等于页面销毁。完整演示页已经处理以下规则,推荐直接复制演示页中的 enterPage() 与 leavePage():
- 进入页面时记录一次亮度、是否自定义亮度、常亮状态。
- 仅记录调用成功的改动;刷新状态、从系统设置返回不会覆盖初始记录。
- 页面卸载时,仅恢复本页改动过的项;原本开启常亮的页面不会被强制关闭。
需要在后台也立即停止常亮时,可在自己的 onHide 中恢复常亮,并在 onShow 中根据业务重新开启。示例在页面卸载时恢复,跳转系统设置不会重建初始记录。
API
以下接口均同步返回;请在 App 前台页面中调用。
| 方法 | 参数 | 返回 |
|---|---|---|
setBrightness(options) |
{ value: number },0~1,例如 0.75 为 75% |
ScreenOperationResult |
resetBrightness() |
无 | ScreenOperationResult |
setKeepScreenOn(enabled) |
boolean,true 开启 |
ScreenOperationResult |
isKeepScreenOn() |
无 | boolean |
getScreenState() |
无 | ScreenState |
openSystemSettings() |
无 | ScreenOperationResult |
setBrightness() 不传参数时使用 50%;有限数值超出 0~1 会截取到范围内,value: null、NaN / Infinity 返回失败且不改变亮度。
resetBrightness() 的含义: 恢复本轮第一次 setBrightness() 前记录的亮度,并清除这次记录。Android 恢复窗口原值(原先跟随系统时恢复跟随系统);iOS 恢复当时记录的屏幕亮度。它不会关闭常亮,也不保证恢复为某个固定百分比。多个页面共同使用时,请由业务统一管理恢复时机。
操作结果 ScreenOperationResult
| 字段 | 类型 | 含义 |
|---|---|---|
ok |
boolean | 操作是否成功 |
platform |
string | android、ios 或 other |
action |
string | 本次 API 方法名 |
brightness |
number | 操作后读取的亮度,0~1 |
brightnessPercent |
number | 亮度百分比,0~100 |
keepScreenOn |
boolean | 当前是否常亮 |
errCode |
number | 错误码;成功为 0 |
errMsg |
string | 失败原因 |
note |
string | 本次操作提示 |
状态 ScreenState
| 字段 | 类型 | 含义 |
|---|---|---|
supported |
boolean | 当前平台及页面上下文是否可用 |
platform |
string | android、ios 或 other |
brightness / brightnessPercent |
number | 当前亮度 0~1 / 百分比 0~100 |
keepScreenOn |
boolean | 当前是否常亮 |
usingCustomBrightness |
boolean | 是否处于自定义亮度状态 |
brightnessScope |
string | Android app、iOS screen、其他 unsupported |
supportsBrightness |
boolean | 当前可否控制亮度 |
supportsKeepScreenOn |
boolean | 当前可否控制常亮 |
supportsOpenSettings |
boolean | 当前可否打开设置 |
settingsTarget |
string | Android display、iOS app、其他 unsupported |
notes |
string | 当前平台说明或不可用原因 |
常见问题
| 现象 | 处理方式 |
|---|---|
| API 提示不支持,或升级后仍表现为旧版本 | 确认运行 Android / iOS App,并重新制作、安装和选择自定义基座 |
| 模拟器调节后看不出变化,数值仍可能保持原值 | 模拟器用于页面、调用流程与返回值检查;实际屏幕明暗和自动息屏请在真机观察 |
| 返回其他页面仍然常亮 | 在退出业务页面时恢复进入时的常亮状态,参考完整演示页的 leavePage() |
resetBrightness() 后仍显示自定义亮度 |
Android 可能恢复到原本已经存在的窗口亮度覆盖值;以进入前状态为准 |
| Android 亮度百分比与体感不一致 | 跟随系统时读取系统设置值,自动亮度、设备显示策略可能影响实际观感 |
| 系统设置打开了,但没直接进入亮度页 | iOS 只打开 App 设置;Android 打开显示设置,具体界面由系统决定 |
错误码:11001 为平台不支持,34001 为当前页面或亮度/常亮操作不可用,34002 为打开设置失败,34003 为非法亮度值。以 ok 和 errMsg 判断本次操作结果。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 642
赞赏 4
下载 12688653
赞赏 1956
赞赏
京公网安备:11010802035340号