首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Notifications Service extension for Notifications Content extension中预加载资源

如何在Notifications Service extension for Notifications Content extension中预加载资源
EN

Stack Overflow用户
提问于 2018-03-29 15:45:09
回答 1查看 213关注 0票数 0

我有一个相当简单的任务。我已经实现了通知服务扩展和通知内容扩展,以实现丰富的通知。现在,在展开的视图(通知内容扩展)中,我需要呈现一个图像。为了让UX更流畅,我想在通知服务扩展中预先加载它,然后在通知内容扩展中呈现它(我相信通知服务扩展就是为此而设计的)。

现在我了解了UNNotificationAttachment,并且我可以使用它来下载图像并将其添加到通知中。但是在通知的简短预览中呈现图像附件。我需要简短的预览,以保持“干净”,而不是显示此图像。

我知道我可以尝试使用核心数据(SO question)或其他共享存储(UserDefaults)。但是使用这种方法,我必须在通知被处理后管理删除资源。这意味着我必须以某种方式找到一种方法来检测特定通知何时被处理(解除/处理),这不是一项容易的任务(例如,如果用户不扩展短预览,但直接将其取消,我需要删除资源-如何检测?)。

有什么标准的方法来解决这个问题吗?或者是由系统根据需要清理的临时存储空间?或者,有没有办法添加UNNotificationAttachment并将其配置为不在预览中显示?我更喜欢第一种方式,因为附件只支持媒体类型,通常我们可能需要预加载不同类型的资源(我知道这是一种边缘情况,但它可能会发生)。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 17:51:06

我找到了一个解决我当前问题的变通方法。如果附件链接了一个有效的图像文件,但使用了不带文件扩展名的标识符(因此没有".png“、".jpg”或".gif"),则短预览不会显示图像的预览:

代码语言:javascript
复制
let imageFileIdentifier = "image" // instead of "image.png"
let imageAttachment = try UNNotificationAttachment.init(identifier: imageFileIdentifier, url: fileURL!, options: options)

这可能不是通用的解决方案,因为正如文档所说:

如果附加的文件已损坏、无效或属于不受支持的文件类型,则不会安排通知请求进行传递。

因此,我希望如果该文件不是媒体文件,而是JSON中的序列化对象,则不会发送通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49550616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档