提问人:user3467582 提问时间:9/15/2017 最后编辑:Nadeem Iqbaluser3467582 更新时间:1/3/2020 访问量:2797
有没有办法在ios中动态更改应用程序图标?
Is there any way to change the app icon dynamically in ios?
问:
我想动态更改应用程序图标。我从服务器接收图像。如何使用该图像作为替代应用程序图标。请确保答案清楚。(但据我所知,替代应用程序图标文件应该在我们的项目 plist 文件中)。
提前致谢。
答:
7赞
Michael Hulet
9/15/2017
#1
您无法在运行时使用从服务器下载的图像更改应用图标。从文档中:
您必须使用应用文件的键来声明应用的主图标和备用图标。有关如何为应用配置备用图标的信息,请参阅信息属性列表键参考中的键说明。
CFBundleIcons
Info.plist
CFBundleIcons
为了动态设置应用程序图标,您必须能够在 中定义它,但 your 包含在 app bundle 中,并且 app bundle 是只读的,因此您没有对文件的运行时写入权限。因此,您无法将应用图标更改为在运行时动态下载的图像Info.plist
Info.plist
Info.plist
评论
0赞
zumzum
1/4/2020
是否可以将 INFO PLIST 设置为将在运行时下载的图像?
0赞
Michael Hulet
1/4/2020
我不这么认为。我相信它们需要被编译到你的应用程序的捆绑包中,这样 iOS 才能知道在哪里可以找到它们。没有办法将其设置为特定文件,只能将其设置为您在 中列出的名称,而且我认为 iOS 不会检查您应用程序的运行时可写目录Info.plist
1赞
Byka
1/2/2020
#2
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
评论