更新记录

1.0.0(2024-05-10)

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


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.8,Android:4.4,iOS:9 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

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

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

相关插件推荐

集成步骤

  1. 集成插件请参考https://www.jianshu.com/p/c1615a7880a7

  2. 配置项目

    • 下载demo示例,将demo里的nativeResources文件、AndroidManifest.xml文件拷贝到自己的项目里(如果已经存在此文件或文件夹请合并内容,合并内容可咨询作者)
    • 替换nativeResources下iOS和Android的图标文件,文件名称不能修改,只替换图片
    • 删除本地基座和手机app,重新自定义基座,使用自定义基座运行
  3. 在manifest.json文件下app-plus-》distribute-》ios -》 capabilities -》plists节点下配置图标信息(参考demo)


 "CFBundleIcons" : {
    "CFBundleAlternateIcons" : {
        "wrsicon1" : {
            "CFBundleIconFiles" : [ "wrsicon1" ],
            "UIPrerenderedIcon" : false
        },
        "wrsicon2" : {
            "CFBundleIconFiles" : [ "wrsicon2" ],
            "UIPrerenderedIcon" : false
        },
        "wrsicon3" : {
            "CFBundleIconFiles" : [ "wrsicon3" ],
            "UIPrerenderedIcon" : false
        }
    }
}
  1. 当前仅支持3个图标切换,如需支持更多图片切换,请联系作者定制

接口文档


import {
    UTSReplaceAppIcon,
    UTSSupportsAlternateIcons,
    UTSResetAppIcon,
    UTSGetCurrentAppIconName
} 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 = {};
params.iconName = "wrsicon1" // manifest.json里配置的CFBundleAlternateIcons节点下的名称
if (this.isAndroid) {
    params.iconName = "com.wrs.wrsicon1" // AndroidManifest.xml里要显示的activity-alias名称
    params.names = this.names // AndroidManifest.xml,所有的activity-alias名称
}

params.restartSystemLauncher = true; // 是否重启launch,仅支持Android,有些机型需要重启launch才能生效
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. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问