uni-app 无法设置手机系统锁屏封面图,因其运行于 WebView 容器,无权访问 Android 的 WallpaperManager 或 iOS 的锁屏权限;Android 可保存图片并引导用户手动设置,iOS 则完全禁止第三方应用设置锁屏图。

uni-app 本身不提供设置手机系统锁屏封面图的能力——这是操作系统层级的权限,Webview 或 Vue 页面无法触达。
为什么 uni-app 不能直接设锁屏封面图
锁屏界面(Lock Screen)由 Android/iOS 系统原生控制,应用需通过特定 API 或配置声明权限才能写入,而 uni-app 编译后的 App 是基于 WebView 容器运行的,不具备访问 android.permission.SET_WALLPAPER 或 iOS 的 PHPhotoLibrary 写入锁屏权限的通道。所有“在 uni-app 里设锁屏图”的说法,实际都是混淆了「App 启动页(splash screen)」或「桌面壁纸(home screen wallpaper)」与「锁屏封面图」。
- 启动页(splashscreen):由
manifest.json中app-plus.splashscreen控制,仅在 App 启动瞬间显示,不等于锁屏图 - 桌面壁纸:可通过
plus.gallery.saveImageToAlbum保存图片到相册,再引导用户手动设为壁纸,但无法跳过系统弹窗 - 锁屏封面图:Android 需
WallpaperManager.setBitmap()+ 权限声明;iOS 完全不允许第三方 App 设置锁屏图(Apple 严格限制),只能通过「快捷指令」或「Shortcuts」间接触发,且不支持封面图自定义
Android 上最接近的可行方案:保存图片 + 引导用户设为锁屏壁纸
虽然不能自动设锁屏图,但可以调用原生能力保存高清图到相册,并跳转系统设置页提示用户手动操作。关键点是路径、格式和权限:
- 图片必须为 JPG 或 PNG,无透明通道(Alpha=0),否则部分 Android 机型锁屏显示异常发灰
- 路径要用
~@/static/lockscreen.jpg,不能用网络地址或临时路径(tempFilePath) - 需在
manifest.json的android.permissions中声明:"android.permission.WRITE_EXTERNAL_STORAGE"(Android 10+ 还需requestLegacyExternalStorage=true) - 调用
plus.gallery.saveImageToAlbum后,用plus.runtime.openURL('package:com.android.settings')跳转设置页(效果有限,部分厂商系统不识别)
iOS 完全不可行,别浪费时间试
iOS 自 iOS 14 起彻底关闭第三方 App 设置锁屏图的 API,连相册写入都需用户显式授权,且系统不允许 App 指定该图片用于锁屏。任何声称「uni-app 实现 iOS 锁屏图」的教程,要么是旧版本误导,要么把「AOD(Always-On Display)」或「锁屏小组件」错当封面图。
唯一合规路径是:引导用户长按锁屏 → 点「编辑」→ 手动选择照片 → 拖动缩放 → 点「完成」。uni-app 只能展示提示文案和截图指引,不能触发任何自动化步骤。
真正容易被忽略的是:所谓“锁屏封面图”需求,90% 场景下其实是想做「App 启动页」或「首页背景图」。确认清楚目标平台和用户真实意图,比硬套一个不存在的 API 更重要。


















