消息/通知数据格式

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

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

Android消息格式

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

Android通知格式

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

属性说明

  • 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进行传递。

iOS通知格式

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

属性说明

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