【发布时间】:2018-02-24 07:13:20
【问题描述】:
我想动态更改应用程序图标。我从服务器接收图像。如何使用该图像作为替代应用程序图标。请确保答案是明确的。 (但据我所知,替代应用程序图标文件应该在我们的项目 plist 文件中)。
提前致谢。
【问题讨论】:
-
感谢您的回复,但我希望它是动态的。
标签: ios objective-c iphone cocos2d-iphone
我想动态更改应用程序图标。我从服务器接收图像。如何使用该图像作为替代应用程序图标。请确保答案是明确的。 (但据我所知,替代应用程序图标文件应该在我们的项目 plist 文件中)。
提前致谢。
【问题讨论】:
标签: ios objective-c iphone cocos2d-iphone
Apple 推出了一项很酷的功能,以便开发人员能够以编程方式更改应用图标。
在 Apple 的 API 文档中,有 3 点值得一看:
var supportsAlternateIcons: Bool { get }
var alternateIconName: String? { get }
func setAlternateIconName(String?, completionHandler: ((Error?) -> Void)? = nil)
现在我们只调用方法:
changeIcon(to: "icon-imageName")
参考:https://developer.apple.com/documentation/uikit/uiapplication/2806815-supportsalternateicons
【讨论】:
您不能使用在运行时从服务器下载的图像来更改您的应用程序图标。来自documentation:
您必须使用应用的
Info.plist文件的CFBundleIcons键声明应用的主图标和备用图标。有关如何为您的应用配置备用图标的信息,请参阅 Information Property List Key Reference 中的CFBundleIcons键的说明。
为了动态设置应用程序图标,您必须能够在您的Info.plist 中定义它,但是您的Info.plist 包含在您的应用程序包中,并且您的应用程序包是只读的,所以您不要对您的 Info.plist 文件具有运行时写入权限。因此,您无法将应用图标更改为在运行时动态下载的图像
【讨论】:
Info.plist 中列出的名称,而且我认为 iOS 不会检查您应用的运行时可写目录