是否允许让备用应用程序图标变为动态?

Posted

技术标签:

【中文标题】是否允许让备用应用程序图标变为动态?【英文标题】:Is it allowed to let the alternate app icon to be dynamic? 【发布时间】:2018-02-18 18:03:46 【问题描述】:

ios 10.3 发布以来,Apple 添加了一项新功能,允许我们使用 setAlternateIconName(_:completionHandler:) 方法动态更改应用程序图标。到目前为止,如方法文档中所述,我们必须在项目 .plist 文件中提及备用应用程序图标的名称,分配给 CFBundlePrimaryIcon 键。

实际上,当使用 static 图标(已直接添加到应用程序主包中的图标)时,它可以正常工作,没有任何问题:

我的问题是:

是否有可能 - 或者是否有解决方法 - 动态地 设置备用应用程序图标(例如:已从网络下载并保存在应用程序 documents 目录中的图标)?

【问题讨论】:

【参考方案1】:

我认为不可能。

setAlternateIconName(_:completionHandler:) API 会在 app bundle 中查找图标,并且无法更改为从沙盒中获取。

此外,Apple 很可能会审查您捆绑的应用程序图标,以避免使用相同的应用程序图标或与 Apple 应用程序相似的图标。

参考:https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname

【讨论】:

感谢您的回答。 “setAlternateIconName(_:completionHandler:) API 会在 app bundle 中查找图标,并且无法更改为从沙盒中获取”,您能否为其添加参考? @AhmadF:我已经包含了来自 hackingswift 的博客链接。我也在查看 Apple 文档。我也会将其包含在我的答案中。我很确定它不能完成。 我正在考虑它,即使作为一种解决方法它也可能行不通...在某些时候,您必须在项目 plist 中提及图标名称,这可能无法完成在运行时。如果你能从苹果那里找到提到这一点的参考资料,我会很棒...... @AhmadF:即使您可以在运行时提供名称,您也需要将图标与应用程序捆绑在一起。我希望苹果将来会重新考虑这一点,但目前不可能。 如果你想为官方添加参考,我很乐意接受:)

以上是关于是否允许让备用应用程序图标变为动态?的主要内容,如果未能解决你的问题,请参考以下文章

iOS- UIAlert 仅在将应用程序图标更改为备用图标后才显示“确定”

iOS备用图标没有改变

iOS 10.3 中的备用图标:避免图标更改的通知对话框

是否可以动态更改通知图标

React 是不是允许动态渲染组件

如何更改通知的应用程序名称?