美文网首页
iOS 系统push和极光push并存的问题

iOS 系统push和极光push并存的问题

作者: 风吹柳絮如花落 | 来源:发表于2017-12-13 19:55 被阅读49次

使用极光推送的注册方法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。

相关文章

网友评论

      本文标题:iOS 系统push和极光push并存的问题

      本文链接:https://www.haomeiwen.com/subject/aivzixtx.html