iOS10通知附件-UNNotificationAttachment

简介

UNNotificationAttachment对象可以包含视频、音频、图片内容,附件内容和通知内容会显示在一起。附件需要你的应用来提供。对于本地通知,应用创建完通知主要内容后再附上附件。对于远程通知,如果要添加附件,必须使用UNNotificationServiceExtension类实现notification service extension。
使用 attachmentWithIdentifier:URL:options:error:
方法创建attachment。必须指定磁盘上的文件作为附件内容,而且文件类型必须是支持的。attachment实例创建完成后,将其赋值给notification对象的attachments
属性。(对于远程通知,这些步骤需要通过你自己实现的service extension来完成)。
系统会先验证附件,然后才将相应的通知加入到发送队列中。如果附件是损坏的、无效的,或者类型不支持,那么通知请求不会被列入发送计划中。附件一旦验证通过,它被移到attachment data store中以保证它们能够被相应的进程存取。如果附件位于应用bundle中,那么系统会使用复制代替移动。
要获取一个已经存在的Attachment对象的内容,必须使用UNUserNotificationCenter中的getDataForAttachment:withCompletionHandler:getReadFileHandleForAttachment:withCompletionHandler:方法。

支持的文件类型

下表中列出了可以用来作为附件的文件类型和每种类型允许的最大尺寸。图片文件可以是单个静态图片也可以是用于播放动画的图片序列

附件 支持类型 附件最大尺寸

Audio
kUTTypeWaveformAudio
kUTTypeMP3
kUTTypeMPEG4Audio
kUTTypeAudioInterchangeFileFormat

** 5MB**

Image
kUTTypeJPEG
kUTTypeGIF
kUTTypePNG

10MB

Movie
kUTTypeMPEG
kUTTypeMPEG2Video
kUTTypeMPEG4
kUTTypeAVIMovie

50MB

关于如何展示图片或影片的缩略图有一些选项

  1. UNNotificationAttachmentOptionsThumbnailClippingRectKey
    选项用来基于原始图片的指定矩形区域创建缩略图
  2. 对于动图和电影,用UNNotificationAttachmentOptionsThumbnailTimeKey
    选项去选择哪个frame给供缩略图使用。

分配给附件的存储空间的数量由每个app限制。如果要删除附件,那么就要使用UNUserNotificationCenter
类的方法直接删除包含该附件的通知请求(notification requests)。

Symbols

||
|---|---|
|创建附件 | +attachmentWithIdentifier:URL:options:error: 通过指定的文件和选项创建附件实例
|
获取附件内容 | identifier 附件id
URL 附件对象所包含文件的URL
type 附件UTI类型
|常量|Attachment Attributes 描述附件信息的一些常量|

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 介绍一下iOS10的通知新功能,用户体验的提升和开发者能够发挥的地方非常多,使得iOS更具有竞争力。 1.iOS ...
    F麦子阅读 9,433评论 3 4
  • 1. 简介 UserNotifications官方文档说明 内容丰富;可以获得用户是否同意推送等notificat...
    linatan阅读 25,685评论 25 84
  • User Notifications 前言 为什么是[通知]而不是[推送] 先来看一下iOS10通知相关的第一个更...
    Bc_wh1te_Le1阅读 4,574评论 2 3
  • 每个人一开始或者说是在面临新的环境时,都是充满斗志的,可是慢慢的随着生活的打压,经历过一些事情之后 ,会慢慢的失去...
    金枝胜叶榕阅读 8,239评论 0 2