内容简介:翻译自:https://stackoverflow.com/questions/40040583/how-to-use-notification-service-extension-with-unnotification-in-ios10
,但如何从推送通知启动它?
我读到服务扩展为有效负载提供端到端加密.
设置推送通知的有效负载需要哪个密钥?
如何识别有效负载以及如何从推送通知启动服务扩展?
让我一步一步来看.
UNNotificationServiceExtension – 它是什么?
UNNotificationServiceExtension是一个App Extenstion目标,它与您的应用程序捆绑在一起,目的是在将推送通知交付给设备之前修改推送通知,然后再将其呈现给用户.您可以通过下载或使用应用程序中捆绑的附件来更改标题,副标题,正文以及附加推送通知的附件.
如何创造
转到文件 – >新 – >目标 – >通知服务扩展并填写详细信息
设置推送通知的有效负载需要哪个密钥?
您需要将mutable-content标志设置为1以触发服务扩展.
此外,如果content-available设置为1,则服务扩展将不起作用.因此要么不设置它,要么将其设置为0.
(编辑:这不适用.您可以设置或取消设置内容可用标志)
如何识别有效负载以及如何从推送通知启动服务扩展?
构建扩展,然后构建并运行您的应用程序.发送推送通知,其中mutable-content设置为1.
码
UNNotificationService公开了两个函数:
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler; - (void)serviceExtensionTimeWillExpire;
当在设备上接收推送通知时以及在将其呈现给用户之前触发第一功能.您在函数内部的代码有机会修改此函数内的推送通知的内容.
您可以通过修改扩展的bestAttemptContent属性来实现此目的,该属性是UNNotificationContent的一个实例,并具有属性:title,subtitle,body,attachments等.
远程通知的原始有效负载通过函数参数request的request.content属性传递.
最后,使用contentHandler调度bestAttemptContent:
self.contentHandler(self.bestAttemptContent);
在第一种方法中你有足够的时间来做你的东西.如果时间到期,则会使用您的代码迄今为止所做的最佳尝试调用第二个方法.
示例代码
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { self.contentHandler = contentHandler; self.bestAttemptContent = [request.content mutableCopy]; // Modify the notification content here... self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]", self.bestAttemptContent.title]; self.contentHandler(self.bestAttemptContent); }
上面的代码将[modified]附加到PN有效载荷中的原始标题.
有效负载示例
{ "aps": { "alert": { "title": "Hello", "body": "body.." }, "mutable-content":1, "sound": "default", "badge": 1, }, "attachment-url": "" }
请注意,attachment-url键是您自己关注的自定义键,iOS无法识别.
翻译自:https://stackoverflow.com/questions/40040583/how-to-use-notification-service-extension-with-unnotification-in-ios10
以上所述就是小编给大家介绍的《如何在iOS10中使用UNNotification的通知服务扩展》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ajax Design Patterns
Michael Mahemoff / O'Reilly Media / 2006-06-29 / USD 44.99
Ajax, or Asynchronous JavaScript and XML, exploded onto the scene in the spring of 2005 and remains the hottest story among web developers. With its rich combination of technologies, Ajax provides a s......一起来看看 《Ajax Design Patterns》 这本书的介绍吧!