nativescript-app-icon-changer
从代码中更改您的应用启动图标
npm i --save nativescript-app-icon-changer

NativeScript App Icon Changer

Build Status NPM version Downloads Twitter Follow

这就是演示应用的实际操作,像老板一样切换应用图标!

安装

tns plugin add nativescript-app-icon-changer

API

要求/导入插件

以下所有示例都假设您正在使用 TypeScript,但这里也展示了如何使用常规 JS 需求插件

JavaScript

var AppIconChangerPlugin = require("nativescript-app-icon-changer");
var appIconChanger = new AppIconChangerPlugin.AppIconChanger();

TypeScript

import { AppIconChanger } from "nativescript-app-icon-changer";

export class MyClass {
private appIconChanger: AppIconChanger;

constructor() {
this.appIconChanger = new AppIconChanger();
}
}

isSupported

仅 iOS 10.3 及以上版本支持此功能,因此您可能需要事先检查

this.appIconChanger.isSupported().then(
supported => console.log(`Supported: ${supported}`));

changeIcon

要切换到不同的图标,请将其添加到 App_Resources/iOSApp_Resources/iOS/Info.plist,如下所述,并将 iconName 传递给 changeIcon

要重置为默认图标,请使用 iconName: null

注意 1:iOS 会通知用户图标已更改,但此插件允许您抑制该消息(默认情况下就是如此)。这可能是苹果不希望您做的事情,但启用抑制功能后没有应用程序被拒绝。

注意 2:只有在应用处于前台时才允许更改应用图标,所以别再考虑那个无声更新应用图标的天气应用了。

this.appIconChanger.changeIcon({
iconName: "icon-blue", // or null to reset to the default
suppressUserNotification: true
});

currentAlternateIcon

想知道应用当前是否配置了替代图标?如果是,其名称是什么?请使用此功能

// synchronous
const currentAppIconName: string = this.appIconChanger.currentAlternateIcon();

为图标切换准备您的应用

苹果不允许切换到任意图标,因此必须在将应用发布到商店之前将其捆绑到您的应用中。

添加您希望用户能够切换到的所有相关分辨率的图标,就像通常那样。

请注意,您不需要提供所有这些分辨率;您只需添加最大的分辨率并在 plist 文件中引用它。iOS 会将其缩放到其他分辨率。

然后,在 App_Resources/iOS/Info.plist 中也引用这些图标

<plist>
<dict>

<!-- Add or merge this bit -->
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<!-- The name you use in code -->
<key>icon-blue</key>
<dict>
<key>UIPrerenderedIcon</key>
<true/>
<key>CFBundleIconFiles</key>
<array>
<!-- The actual filenames. Don't list the @2x/@3x files here -->
<string>icon-blue-57</string>
<string>icon-blue-60</string>
<string>icon-blue-72</string>
<string>icon-blue-76</string>
</array>
</dict>
</dict>
</dict>

</dict>
</plist>

需要 iPad 支持?只需复制该 plist 配置,将 <key>CFBundleIcons</key> 更改为 <key>CFBundleIcons~ipad</key>

想看到实际项目中如何配置?请查看演示应用的详细信息。