我有一个非常简单的任务。我已经实现了一个通知服务扩展以及一个通知内容扩展来实现丰富的通知。现在在扩展视图(通知内容扩展)中,我需要展示一张图片。为了使 UX 更流畅,我想在 Notifications Service 扩展中预加载它,然后将它呈现在 Notifications Content 扩展中(我相信 Notifications Service 扩展是为它设计的)。
现在我知道UNNotificationAttachment
并且可以使用它来下载图像并将其添加到通知中。但是在通知的简短预览中会显示图像附件。我需要简短的预览以保持“干净”并且不显示此图像。
我知道我可以尝试使用 Core Data(SO question)或其他一些共享存储(UserDefaults
)。但是使用它,我必须在处理通知后管理删除资源。这意味着我必须以某种方式找到一种方法来检测特定通知何时已被处理(解除/处理),这不是一件容易的事(例如,如果用户不会展开简短预览而是直接解除它,我需要删除资源 - 我如何检测到它?)。
有没有解决这个问题的标准方法?系统根据需要清理一些临时存储吗?或者有没有办法添加 aUNNotificationAttachment
并将其配置为不在预览中显示?我更喜欢第一种方式,因为附件只支持媒体类型,而且通常我们可能需要预加载不同类型的资源(我知道这是一种极端情况,但它可能会发生)。