Remote Notification (二)

翻译 2017年01月03日 14:28:46

Modifying and Presenting Notifications

你可以通过app extersions来改变到达的通知的展示内容或者显示风格。为了在通知被投递前修改远程通知的内容,需要使用一个通知服务app extension。(notification service app extension)为了改变通知内容如何呈现,需要使用一个通知内容app extension。(notification content app extension)

Modifying the Payload of a Remote Notification

service extension 允许在数据被呈现给用户前你的app对其做出修改。可以做出的修改如下:

  • 对加密的数据进行解密

  • 下载图片或者其他的媒体文件并且把它们作为附件添加到通知上

  • 改变通知的内容或者标题

  • 添加一个线程标识到notification或者修改notification 的userinfo dictionary 的内容。

To add a notification service app extension to your iOS app
  1. In Xcode, select New > Target to add a new target to your project.

  2. In the iOS > Application Extension section, select the Notification Service Extension target.

  3. Click Next.

  4. Specify the name and other details for your app extension.

  5. Click Finish.

Xcode adds a preconfigured target to your app project.

你可以使用didReceiveNotificationRequest:withContentHandler: 方法来创建和配置一个新的UNMutableNotificationContent对象。你可以对新的对象进行任何的改变,替换一些或者全部的原始content的值。当你完成后,配合你的心的content 对象调用提供的completion handler。系统就会将你的心内容集成到通知中并且把他投递给用户。

系统提供给你了一些有限数量的对于通知的修改。并且调用提供的completion handler。因此你应该尽快执行任何的任务。如果你的didReceiveNotificationRequest:withContentHandler:方法超时了,那么系统就会调用serviceExtensionTimeWillExpire 方法来给你一个最后的机会来完成你的修改。如果你不及时调用completion handler,系统就会显示通知的原始内容。

server发送的远程通知必须显示地支持notification service app extension进行修改。通知不包含没有经过修改就被直接投递出去的通知。当创建远程通知的载荷时,你的server应当做如下的事情:

  • 包含一个key值为1的mutable content

  • 包含一个alert字典,其中包含title和body两个subkeys

Presenting Notifications Using a Custom Interface on iOS

使用notification content app extension为你的app通知展示自定义用户接口。你使用一个这种类型的extension来体现自定义content或者使用一个不同的layout来呈现。例如,你可以使用这个类型的extension来在通知中展示images或者media files

一个notification content app extension支持连同特定category来展示本地和远程通知。你可以使用unnotificationcontent 对象的categoryIdentifier 来制定本地通知的category。对于远程通知,你的server包含一个category key和值。当一个带有category的通知到达时,系统会从你的扩展中加载view controller并且将你的content集成到系统接口中去。你在通知内容出现在屏幕上前使用通知内容来配置你的view controller。

To add a notification content app extension to your iOS app
  1. In Xcode, select New > Target to add a new target to your project.

  2. In the iOS > Application Extension section, select the Notification Content Extension target.

  3. Click Next.

  4. Specify the name and other details for your app extension.

  5. Click Finish.

Xcode adds a preconfigured target to your app project.

The initial notification content app extension target is configured to present notifications associated with a single category. You must modify your target to specify which category of notifications you want to support with each extension. You specify the category using the UNNotificationExtensionCategory key in your target’s Info.plist file. Set the value of the key to the same string in the identifier property of the UNNotificationCategory object that your app registers at launch time.

To support multiple notification categories with your app extension
  1. Select the Info.plist file of your notification content extension project.

  2. Expand the NSExtension dictionary to view the extension-related keys.

  3. Expand the NSExtensionAttributes dictionary.

  4. Change the type of the UNNotificationExtensionCategory key to Array.

  5. Add one entry for notification category that the extension handles.

You may include multiple notification content app extensions in your iOS app bundle. The system expects only one extension to support a given category, so you must configure the UNNotificationExtensionCategory key of each extension with a different set of values.

For more information about implementing your notification content app extension, see UNNotificationContentExtension Protocol Reference.

Presenting Notifications Using a Custom Interface on watchOS

The WatchKit framework provides direct support for presenting notifications using a custom interface. A WatchKit extension may include one or more notification interface controllers to display when notifications arrive for your app. You use these interface controllers to present the content of your notifications. For information on how to implement a notification interface controller, see App Programming Guide for watchOS.

相关文章推荐

APNS - ios Remote Notification

APNS 推送实现、相关基础内容、以及一些疑惑。

Local/Remote Notification

简介 远程通知(remote notification)和本地通知(local notification)是两种用户通知类型,远程通知又称为推送通知(push notification)。这两种通知...

app Remote Notification远程消息推送处理

主要流程和注意事项数据通讯流程 - 使用前证书准备 从证书颁发机构颁发证书 保存证书到一个文件夹apns登陆苹果开发者帐号,新建一个AppID,选择网页上的AppIDs,然后...

推送(远程Remote Notification)

一.关于推送通知   推送通知,也被叫做远程通知,是在iOS 3.0以后被引入的功能。是当程序没有启动或不在前台运行时,告诉用户有新消息的一种途径,是从外部服务器发送到应用程序上的。一般说...

iOS7 Background Remote Notification(后台远程通知——静默push)

iOS 7在推送方面最大的变化就是允许:应用收到通知后在后台(background)状态下运行一段代码,可用于从服务器获取内容更新。功能使用场景:(多媒体)聊天,Email更新,基于通知的订阅内容同步...
  • hherima
  • hherima
  • 2016年01月06日 16:27
  • 7888

Selenium 自动化测试(二)部署Selenium Remote Control(Selenium RC)

Selenium 是 thoughtworks公司的一个集成测试的强大工具,在上一篇文章介绍了Selenium IDE,现在来说说Selenium Remote Control。Selenium Re...

Remote Compute Engine——JAVA RMI 学习二

什么是RMI: The Java Remote Method Invocation (RMI) system allows an object running in one Java vir...
  • lemon89
  • lemon89
  • 2016年01月14日 21:14
  • 700

Android 学习笔记 Service (二) Remote Service Sample

1.一步步的建立Remote Service 0)创建一个helloworld项目。 1)新建文件 IRemoteService.aidl 为什么要建aidl文件,因为在这里我们使用的是Remo...
  • wssiqi
  • wssiqi
  • 2012年11月14日 21:30
  • 4888

Validate笔记二:表单验证插件Validate中的remote

Validate中的remote支持自定义验证规则。以前写的验证都是整个表单提交后,进行检查。感觉没有remote好用。。。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Remote Notification (二)
举报原因:
原因补充:

(最多只允许输入30个字)