【问题标题】:Is there any way to change the app icon dynamically in ios?有没有办法在ios中动态更改应用程序图标?
【发布时间】:2018-02-24 07:13:20
【问题描述】:

我想动态更改应用程序图标。我从服务器接收图像。如何使用该图像作为替代应用程序图标。请确保答案是明确的。 (但据我所知,替代应用程序图标文件应该在我们的项目 plist 文件中)。

提前致谢。

【问题讨论】:

标签: ios objective-c iphone cocos2d-iphone


【解决方案1】:

Apple 推出了一项很酷的功能,以便开发人员能够以编程方式更改应用图标。

在 Apple 的 API 文档中,有 3 点值得一看:

var supportsAlternateIcons: Bool { get }
var alternateIconName: String? { get }
func setAlternateIconName(String?, completionHandler: ((Error?) -> Void)? = nil)

信息.plist

现在我们只调用方法:

changeIcon(to: "icon-imageName")

参考:https://developer.apple.com/documentation/uikit/uiapplication/2806815-supportsalternateicons

【讨论】:

    【解决方案2】:

    您不能使用在运行时从服务器下载的图像来更改您的应用程序图标。来自documentation

    您必须使用应用的Info.plist 文件的CFBundleIcons 键声明应用的主图标和备用图标。有关如何为您的应用配置备用图标的信息,请参阅 Information Property List Key Reference 中的 CFBundleIcons 键的说明。

    为了动态设置应用程序图标,您必须能够在您的Info.plist 中定义它,但是您的Info.plist 包含在您的应用程序包中,并且您的应用程序包是只读的,所以您不要对您的 Info.plist 文件具有运行时写入权限。因此,您无法将应用图标更改为在运行时动态下载的图像

    【讨论】:

    • 您可以将信息 plist 设置为将在运行时下载的图像吗?
    • 我不这么认为。我相信它们需要被编译到您的应用程序包中,以便 iOS 知道在哪里可以找到它们。没有办法将其设置为特定文件,只有您在 Info.plist 中列出的名称,而且我认为 iOS 不会检查您应用的运行时可写目录
    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    相关资源
    最近更新 更多