更新记录
1.0.0(2026-09-15)
- 初始版本
- 支持 Android 平台
- 获取当前默认桌面应用
- 切换默认桌面应用(三级降级策略适配 MIUI/EMUI)
平台兼容性
uni-app(4.27)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | × | × | √ | 1.0.0 | √ | 1.0.0 | 6.0 | 1.0.0 | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.27)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 6.0 | × | × | × |
zy-launcher 桌面Launcher工具
桌面 Launcher UTS 插件,支持 Android 平台,提供获取默认桌面、切换默认桌面、启动过渡页等功能。
功能特性
- ✅ 获取当前默认桌面应用
- ✅ 列出本机所有可用桌面应用
- ✅ 切换默认桌面应用(三级降级策略)
支持平台
| 平台 | 最低版本 |
|---|---|
| Android | Android 6.0 (API 23) |
安装
在 HBuilderX 插件市场搜索 zy-launcher 安装,或手动将插件目录复制到项目的 uni_modules/ 下。
权限配置
Android
插件已自动配置 AndroidManifest.xml,包含以下权限:
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
API 说明
1. getLauncher - 获取当前默认桌面
获取当前默认桌面应用信息,并列出本机所有可用桌面应用。
import { getLauncher } from '@/uni_modules/zy-launcher'
getLauncher({
success: (res) => {
console.log('默认桌面包名:', res.packageName)
console.log('默认桌面类名:', res.className)
console.log('本机桌面应用数量:', res.count)
console.log('桌面应用列表:', res.homes)
},
fail: (err) => {
console.error('获取失败:', err.errMsg)
},
complete: (res) => {
console.log('操作完成')
}
})
success 回调参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| success | boolean | 是否成功获取默认桌面 |
| packageName | string | 默认桌面包名 |
| className | string | 默认桌面类名 |
| homes | Array | 本机可用桌面应用列表 |
| count | number | 本机可用桌面应用数量 |
| message | string | 失败时的原因 |
桌面应用信息字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| packageName | string | 应用包名 |
| className | string | 应用类名 |
2. setLauncher - 切换默认桌面
打开系统设置页切换默认桌面应用,采用三级降级策略适配 MIUI/EMUI 等定制 ROM。
import { setLauncher } from '@/uni_modules/zy-launcher'
setLauncher({
success: (res) => {
console.log('切换入口:', res.action)
console.log('提示信息:', res.message)
},
fail: (err) => {
console.error('切换失败:', err.errMsg)
},
complete: (res) => {
console.log('操作完成')
}
})
success 回调参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| success | boolean | 是否成功打开切换入口 |
| action | string | 实际走的入口:homeSettings / defaultAppsSettings / chooser / none |
| count | number | 本机可用桌面应用数量 |
| message | string | 提示文案 |
action 说明:
| action | 说明 |
|---|---|
| homeSettings | 打开系统「默认桌面」设置页 |
| defaultAppsSettings | 打开系统「默认应用」设置页 |
| chooser | 弹出系统选择弹窗 |
| none | 无法打开切换入口 |
3. launchHomeScreen - 启动 LauncherActivity
启动桌面过渡页,用于开机自启场景。
import { launchHomeScreen } from '@/uni_modules/zy-launcher'
launchHomeScreen({
success: (res) => {
console.log('启动成功:', res.message)
},
fail: (err) => {
console.error('启动失败:', err.errMsg)
},
complete: (res) => {
console.log('操作完成')
}
})
success 回调参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| success | boolean | 是否成功启动 |
| message | string | 提示信息 |
完整示例
<template>
<view class="container">
<button @click="handleGetLauncher">获取当前默认桌面</button>
<button @click="handleSetLauncher">切换默认桌面</button>
<button @click="handleLaunchHomeScreen">启动过渡页</button>
<view class="info-card" v-if="launcher">
<text>包名: {{ launcher.packageName }}</text>
<text>类名: {{ launcher.className }}</text>
</view>
<view class="home-list">
<view v-for="(item, index) in homes" :key="index" class="home-item">
<text>{{ index + 1 }}. {{ item.packageName }}</text>
</view>
</view>
</view>
</template>
<script>
import { getLauncher, setLauncher, launchHomeScreen } from '@/uni_modules/zy-launcher'
export default {
data() {
return {
launcher: null,
homes: []
}
},
methods: {
handleGetLauncher() {
getLauncher({
success: (res) => {
if (res.success) {
this.launcher = {
packageName: res.packageName,
className: res.className
}
this.homes = res.homes
uni.showToast({ title: '获取成功' })
} else {
uni.showToast({ title: res.message, icon: 'none' })
}
},
fail: (err) => {
uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
},
handleSetLauncher() {
setLauncher({
success: (res) => {
if (res.success) {
uni.showModal({
title: '提示',
content: res.message,
showCancel: false
})
} else {
uni.showToast({ title: res.message, icon: 'none' })
}
},
fail: (err) => {
uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
},
handleLaunchHomeScreen() {
launchHomeScreen({
success: (res) => {
uni.showToast({ title: '启动成功' })
},
fail: (err) => {
uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
}
}
</script>
<style>
.container {
padding: 20rpx;
}
button {
margin: 20rpx 0;
}
.info-card {
margin-top: 40rpx;
padding: 20rpx;
background: #f5f5f5;
border-radius: 10rpx;
}
.home-list {
margin-top: 40rpx;
}
.home-item {
padding: 20rpx;
border-bottom: 1rpx solid #eee;
}
</style>
错误码
| 错误码 | 说明 |
|---|---|
| 1001 | 获取默认桌面失败 |
| 1002 | 切换默认桌面失败 |
| 1003 | 启动 LauncherActivity 失败 |
| 1004 | 未找到可用的桌面应用 |
| 1005 | 本机只安装了1个桌面应用,无需选择 |
注意事项
- MIUI/EMUI 兼容:插件采用三级降级策略,优先使用系统「默认桌面」设置页,其次使用「默认应用」设置页,最后使用系统 chooser 弹窗兜底
- Android 11+ 兼容:通过
<queries>声明包可见性,确保在 Android 11+ 上仍能查询到所有桌面应用 - LauncherActivity:配合
RECEIVE_BOOT_COMPLETED权限,可用于开机自启动场景 - 全屏过渡页:LauncherActivity 是全屏沉浸式显示,延迟 1 秒后自动启动主应用
更新日志
1.0.0
- 初始版本
- 支持 Android 平台
- 获取当前默认桌面应用
- 切换默认桌面应用

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