简介
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 |
关于如何展示图片或影片的缩略图有一些选项
-
UNNotificationAttachmentOptionsThumbnailClippingRectKey
选项用来基于原始图片的指定矩形区域创建缩略图 - 对于动图和电影,用UNNotificationAttachmentOptionsThumbnailTimeKey
选项去选择哪个frame给供缩略图使用。
分配给附件的存储空间的数量由每个app限制。如果要删除附件,那么就要使用UNUserNotificationCenter
类的方法直接删除包含该附件的通知请求(notification requests)。
Symbols
||
|---|---|
|创建附件 | +attachmentWithIdentifier:URL:options:error: 通过指定的文件和选项创建附件实例
|
获取附件内容 | identifier 附件id
URL 附件对象所包含文件的URL
type 附件UTI类型
|常量|Attachment Attributes 描述附件信息的一些常量|