更新记录

1.0.10(2025-09-15)

  1. 增加鸿蒙支持

1.0.9(2025-04-09)

优化

1.0.8(2025-04-02)

  1. 优化兼容性
查看更多

平台兼容性

uni-app(3.6.9)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - 5.0
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x(3.6.9)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 -

其他

多语言 暗黑模式 宽屏模式

动态切换桌面icon图标,支持vue2/vue3,ios/android/harmony

  • 动态切换app的桌面icon图标,实现类似双十一、过年时app桌面图标自动变化的效果

相关插件推荐

集成步骤

  1. 集成插件步骤请参考https://www.cnblogs.com/wenrisheng/p/18323027

  2. 配置项目

    • 下载demo示例,将demo里的nativeResources文件、AndroidManifest.xml、Info.plist文件拷贝到自己的项目里(如果已经存在此文件或文件夹请合并内容,合并内容可咨询作者)
    • 替换nativeResources下iOS和Android的图标文件,文件名称不能修改,只替换图片
    • 删除本地基座和手机app,重新自定义基座,使用自定义基座运行
  3. 鸿蒙集成步骤:

    • 首先开通图标管理服务,并保证应用处于正式上架状态;
    • 在图标管理页面上传应用的个性化图标,上传正方形大小为216*216px的图片,格式为PNG格式或WEBP格式
    • 业务流程:业务流程:查询动态图标信息(UTSQueryDynamicIcons)->切换动态图标(UTSQueryDynamicIcons)->恢复默认图标(UTSResetAppIcon)
  4. ios和Android当前仅支持3个图标切换,如需支持更多图片切换,请联系作者定制

接口文档


import {
    UTSReplaceAppIcon,
    UTSSupportsAlternateIcons,
    UTSResetAppIcon,
    UTSGetCurrentAppIconName,
    UTSQueryDynamicIcons
} from "@/uni_modules/wrs-uts-replaceappicon"

data() {
    var isAndroid = true
    switch (uni.getSystemInfoSync().platform) {
        // android
        case 'android':
            isAndroid = true
            break;
            // ios
        default:
            isAndroid = false
            break;
    }
    return {
        isAndroid: isAndroid,
        title: 'Hello',
        names: ["com.wrs.wrsicon1", "com.wrs.wrsicon2", "com.wrs.wrsicon3"],
        msg: null
    }
},
  • 替换桌面图标icon
    1. 有些Android机型切换桌面图片后app会自动切换到后台,所以一般Android里在app后台运行时或关闭app时再切换icon
    2. ios替换桌面图标时,会弹出系统提示框,为了不弹出这个提示框,请同时集成插件https://ext.dcloud.net.cn/plugin?name=wrs-uts-replaceappicon-noalert

var params = {};
switch (uni.getSystemInfoSync().platform) {
    case 'android': {
         // AndroidManifest.xml,所有的activity-alias名称
        let names = ["com.wrs.wrsicon1", "com.wrs.wrsicon2", "com.wrs.wrsicon3"]
        params.iconName = "com.wrs.wrsicon1" // AndroidManifest.xml里要显示的activity-alias名称
        params.names = names
        params.restartSystemLauncher = true; // 是否重启launch,仅支持Android,有些机型需要重启launch后图标才能生效
    }
    break;
    case 'ios': {
        params.iconName = "wrsicon1" // Info.plist里配置的CFBundleAlternateIcons节点下的名称
    }
    break;
    case 'harmonyos': {
        // 业务流程:查询动态图标信息(UTSQueryDynamicIcons)->切换动态图标(UTSQueryDynamicIcons)->恢复默认图标(UTSResetAppIcon)
        UTSQueryDynamicIcons((resp)=>{
            let flag = resp.flag
            if(flag) {
                let icons = resp.icons
                let titles = []
                for(let i = 0; i < icons.length; i ++) {
                    titles.push(icons[i].iconUrl)
                }
                this.showActionSheet(titles, (index)=>{
                    let iconId = icons[index].iconId 
                    let params = {}
                    params.iconId = iconId
                    UTSQueryDynamicIcons(params, (resp)=>{
                        let suc = resp.flag
                        if(suc) {

                        } else {
                            this.showMsg("切换图标失败:" + JSON.stringify(resp))
                        }
                    })
                })
            } else {
                this.showMsg("查询动态图标失败:" + JSON.stringify(resp))
            }
            })
    }
    break;
    default:
        break;
}

UTSReplaceAppIcon(params, (resp) => {
    this.showMsg(JSON.stringify(resp))
});
  • 重置为app原本的icon

var params = {};
if (this.isAndroid) {
    params.names = this.names
}
UTSResetAppIcon(params, (resp)=>{

})
  • 判断是否支持修改桌面icon,仅支持iOS

let support = UTSSupportsAlternateIcons()
if (support) {
    this.showMsg("当前机型支持修改icon")
} else {
    this.showMsg("当前机型不支持修改icon")
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android: <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"></uses-permission> ios: 无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: