【问题标题】:How to change the app launcher icon dynamically如何动态更改应用启动器图标
【发布时间】:2020-01-11 10:27:18
【问题描述】:

我想通过 API 下载应用启动器图标,并用这个新图标替换现有图标,适用于 Android 和 IOS 应用程序。我正在使用 ionic-3 Cordova 进行开发。

这可能吗?

【问题讨论】:

  • 如果您愿意,可以通过更新发送新图标。它不会为您提供本机时钟应用程序效果。但您可以更新应用图标。
  • 确保每次更新都有效。感谢您的告知。

标签: ios cordova ionic3 android-launcher app-launcher


【解决方案1】:

这是不可能的。图标是静态的,在 iOS 中无法更改。这不是安卓。

【讨论】:

    【解决方案2】:

    iOS 10.3+ 起(自 2017 年起),这是可能的,但对于 Cordova 应用程序(如 Ionic)来说,这将取决于特定的插件。

    你可以试试这个插件(只有iOS,不是Android)cordova-plugin-app-icon-changer

    安装使用:

    cordova plugin add cordova-plugin-app-icon-changer
    

    检查支持:

    AppIconChanger.isSupported(function(supported) {
        if (supported) {
              ...
        } else {
              ...
        }
    });
    

    更换图标:

    AppIconChanger.changeIcon({
        iconName: "<icon name here>",
        suppressUserNotification: true
    }, function() {
         // Changed...
    }, function(err) {
         // If failed ...
    });
    

    更多插件见:https://cordova.apache.org/plugins/?q=icon

    注意:如果需要,您可以使用 setAlternateIconName(_:completionHandler:) 实现自己的插件(或者如果您想创建原生应用程序)

    使用supportsAlternateIcons检查是否支持交换很重要

    将图片放入“资产”后,转到Info.plist (CFBundleIcons) 添加与图片对应的项目CFBundleAlternateIcons,如示例中所示:

    ▼ CFBundleIcons
      ▼ CFBundleAlternateIcons
        ▼ <icon name here>
          ▶ CFBundleIconFiles
    

    如果您需要对 iPad 的支持,结构应该类似于:

    ▼ CFBundleIcons
      ▼ CFBundleAlternateIcons
        ▼ <icon name here>
          ▶ CFBundleIconFiles
    ▼ CFBundleIcons~ipad
      ▼ CFBundleAlternateIcons
        ▼ <icon name here>
          ▶ CFBundleIconFiles
    

    Cordova 项目的图片示例(例如 Ionic)


    Android Cordova 插件

    到目前为止,我还没有找到适用于 Android 的现有插件,但根据这个答案 How to change an application icon programmatically in Android?(我目前无法测试答案)显然可以更改图标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 2018-11-18
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多