使用极光推送的注册方法registerForRemoteNotificationConfig注册通知 - 前台push
1、iOS 10之前系统的手机则只执行系统方法:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo。
2、iOS 10以后系统的手机
1)在使用Xcode跑代码会执行一次极光推送代理方法
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler。
和系统代理方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
2)打包则只执行
//MARK: iOS10新增:处理前台收到通知的代理方法 在程序内
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler。
后台同理。
传递参数
lALOjZsXM80C2M0E_g_1278_728.png_620x10000q90g.jpg
通知内容类似如下:
{
"_j_msgid" = 200806057; // 第三方附带的 id,用于统计点击
aps = {
alert = "显示内容";
badge = 1; // App 角标,可推送 n、+n、-n 来实现角标的固定、增加、减少
sound = default; // 推送声音,默认系统三全音,如需使用自己的声音,需要将声音文件拖拽&拷贝至 Xcode 工程目录任意位置,并在推送时指定其文件名
};
key1 = value1; // 自定义字段,可设置多组,用于处理内部逻辑
key2 = value2;
}
1、前台:
收到push会立即走didReceiveRemoteNotification方法(做处理)
2、后台
开启后台模式 - Remote Notification 收到push调用回调didReceiveRemoteNotification:fetchCompletionHandler:方法
3、杀死
正常消息
各种显示效果跟普通推送完全一样。
必须携带 "content-available" = 1;
必须携带 alert、badge、sound 中 至少 1 个字段。
静默消息
必须携带 "content-available" = 1;,因此静默必然是后台的。
必须不携带 alert、badge、sound。