App :
处于前台,不会展示横幅,可通过 didReceiveRemoteNotification(iOS 7 before)didReceiveRemoteNotification:fetchCompletionHandler:(iOS 7 after)获取通知内容(前台展示横幅的方法看这里)。
处于后台,会展示横幅,无法获取通知内容。
处于退出,会展示横幅,无法获取通知内容。
点击图标启动,无法获取通知内容。
点击通知横幅启动,在 didFinishLaunchingWithOptions 获取通知内容。
通知内容类似如下:
{
"_j_msgid" = 200806057; // 第三方附带的 id,用于统计点击
aps = {
alert = "显示内容";
badge = 1; // App 角标,可推送 n、+n、-n 来实现角标的固定、增加、减少
sound = default; // 推送声音,默认系统三全音,如需使用自己的声音,需要将声音文件拖拽&拷贝至 Xcode 工程目录任意位置,并在推送时指定其文件名
};
key1 = value1; // 自定义字段,可设置多组,用于处理内部逻辑
key2 = value2;
}
后台推送
各种显示效果跟普通推送完全一样。
必须携带 "content-available" = 1;
必须携带 alert、badge、sound 中 至少 1 个字段。
仅 iOS 7 以后支持。
必须在 Xcode 工程中 TARGETS - Capabilities - Background Modes - Remote notifications 开启该功能。
App:
处于前台,可通过didReceiveRemoteNotification(iOS 7 before)didReceiveRemoteNotification:fetchCompletionHandler:(iOS 7 after) 获取通知内容。
处于后台,可通过 didReceiveRemoteNotification:fetchCompletionHandler: 获取通知内容 // 获取情况中与普通推送的唯一不同点,此时 iOS 系统允许开发者在 App 处于后台的情况下,执行一些代码,大概提供几分钟的时间,可以用来偷偷的刷新 UI、切换页面、下载更新包等等操作。
处于退出,无法获取通知内容。
点击图标启动,无法获取通知内容。
点击推送横幅启动,在 didFinishLaunchingWithOptions 获取通知内容。
通知内容类似如下:
{
"_j_msgid" = 2090737306;
aps = {
alert = "显示内容";
badge = 1;
"content-available" = 1; // 必带字段
sound = default;
};
key1 = value1;
}
静默推送
没有任何展示效果。
必须携带 "content-available" = 1;,因此静默必然是后台的。
必须不携带 alert、badge、sound。
可携带自定义字段。










