消息/通知数据格式

在使用sdk或restapi接口进行消息推送时,对于消息的结构存在一定的要求,并且不同的平台间存在差异. 在推送消息时,务必参照以下文档中内容进行设置。

注意: 消息体尺寸,对于Android消息不大于4KB;iOS消息不大于4KB。

Android消息格式

Android平台的消息无格式要求,开发者可以自定义。

Android普通通知格式

{  
    "title" : "hello" ,  
    "description": "hello world" //必选  
    "notification_builder_id": 0, //可选  
    "notification_basic_style": 7, //可选  
    "open_type":0, //可选  
    "url": "http://dpush.isoftop.com", //可选  
    "pkg_content":"", //可选  
    "custom_content":{"key":"value"}, //可选 
    "target_channel_id":"" //可选
}

属性说明

  • title:通知标题,可以为空;如果为空则设为appid对应的应用名。
  • description:通知文本内容,不能为空。
  • notification_builder_id:android客户端自定义通知样式,如果没有设置默认为0。
  • notification_basic_style:只有notification_builder_id为0时有效,可以设置通知的基本样式包括(响铃:0x04;振动:0x02;可清除:0x01;),这是一个flag整形,每一位代表一种样式,如果想选择任意两种或三种通知样式,notification_basic_style的值即为对应样式数值相加后的值。
  • open_type:点击通知后的行为(1:打开Url; 2:自定义行为;)。 open_type =0,只回调onNotificationClicked方法,不做其他操作; open_type = 1,url != null:打开网页; open_type = 2,pkg_content = null:直接打开应用; open_type = 2,pkg_content != null:自定义动作打开应用。
  • url:需要打开的Url地址,open_type为1时才有效。
  • pkg_content:open_type为2时才有效,Android端SDK会把pkg_content字符串转换成Android Intent,通过该Intent打开对应app组件,所以pkg_content字符串格式必须遵循Intent uri格式,最简单的方法可以通过Intent方法toURI()获取。
  • custom_content:自定义内容,键值对,Json对象形式(可选);在android客户端,这些键值对将以Intent中的extra进行传递。
  • target_channel_id:通知栏自定义渠道,从Android O(Android9)开始可以指定消息要展示在哪个通知渠道上(可选)。

iOS通知格式一

{
    "aps": {
        "alert":"Message From D Cloud Push-Service",
        "sound": "", // 可选
        "badge": 0 // 可选
    },
    "key1": "value1",
    "key2": "value2"
}

iOS通知格式二

{
    "aps": {
        "alert": {
            "summary-arg": "D Cloud Summary", // 可选 
            "title": "Message From D Cloud Push-Service", // 可选
            "body": "desc" // 可选 
        },
        "mutable-content": 1,
        "sound": "default", // 可选
        "badge": 0, // 可选
        "thread-id": "sample" // 可选
    },
    "key1": "value1",
    "key2": "value2"
}

属性说明

  • alert:其内容可以为字符串或者字典,如果是字符串,那么将会在通知中显示这条内容。
  • badge:其值为数字,表示当通知到达设备时,应用的角标变为多少。如果没有使用这个字段,那么应用的角标将不会改变。设置为 0 时,会清除应用的角标。
  • sound:指定通知展现时伴随的提醒音文件名。如果找不到指定的文件或者值为 default,那么默认的系统音将会被使用。如果为空,那么将没有声音。
  • thread-id:通知消息的聚合标识。
  • summary-arg:聚合消息的参数名。
  • "key1" "value1" "key2" "value2": 用户自定义参数的字段的key值和对应的vlue值。