想在下发通知的时候添加自定义字段?想发送用户无感知的信息用于更新 App?请读下去

一、如何推送

1.1 添加扩展字段 extra

通知 Notification 对象的 Android 或 iOS 属性下分别传扩展字段 extra,通知内容 alert 会展示,extra 信息不会展示

  • 服务端代码如下:
    "notification": {
          "android": {
              "alert": "Hi, JPush!",
              "title": "Send to Android",
              "builder_id": 1,
              "extras": {
                  "newsid": 321//此处传 Android 的 extra 信息,key 和 value 都由你自己定义,可以传多个。
              }
          },
          "ios": {
              "alert": "Hi, JPush!",
              "sound": "default",
              "badge": "+1",
              "extras": {
                  "newsid": 321//此处传 iOS 的 extra 信息,key 和 value 都由你自己定义,可以传多个。
              }
          }
      },
  • 官网推送 - 展开可选设置

null

1.2 推送自定义消息 Message

自定义消息 Message,与通知 Notification 一样,是一条推送的实体内容对象之一,主要区别在于自定义消息的所有内容完全不会展示出来

代码示例:

    "message": {
        "msg_content": "Hi,JPush",
        "content_type": "text",
        "title": "msg",
        "extras": {
            "key": "value"// Message 信息同样可以添加 extra 字段
        }
    },

二、 如何获取上述自定义信息

2.1 Notification 的 extra 信息的接收

  • Android,文档链接点我
    Action - JPushInterface.ACTION_NOTIFICATION_RECEIVED.
    JPushInterface.EXTRA_EXTRA
  • iOS,文档链接点我
      - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
          // 取得Extras字段内容
          NSString *customizeField1 = [userInfo valueForKey:@"customizeExtras"]; //服务端中Extras字段,key是自己定义的

    2.2 自定义消息 Message 的接收

  • Android,文档链接点我
    Action - JPushInterface.ACTION_MESSAGE_RECEIVED
  • iOS,文档链接点我
      - (void)networkDidReceiveMessage:(NSNotification *)notification {
                      NSDictionary * userInfo = [notification userInfo];
                      NSString *content = [userInfo valueForKey:@"content"];
                      NSString *messageID = [userInfo valueForKey:@"_j_msgid"];
                      NSDictionary *extras = [userInfo valueForKey:@"extras"]; 
                      NSString *customizeField1 = [extras valueForKey:@"customizeField1"]; //服务端传递的 Extras 附加字段,key 是自己定义的     
              }

如果对你有帮助,点个赞呗 ლ(╹◡╹ლ)

不吹不黑,关注「常见问题」专栏可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ

如果还有你想知道的问题没有总结方案,来评论区跟我交流交流吖