在开发向苹果Apns推送消息服务功能,我们需要根据Apns接受的数据格式进行推送。下面积累了我在进行apns推送时候总结的 apns服务接受的Json数据格式
示例 1:
以下负载包含哦一个简单的 aps 字典。它使用字符串而不是字典作为 alert 的值,该负载同样包含了一个自定义的属性数组。
{ "aps" : { "alert" : "message" },//alert表示推送的消息文本 "parm" : [ "key", "value" ] //parm 表示其他业务参数,提供扩展,ios端可以获取到针对不同的业务逻辑需要与ios端进行参数结构的约束 }
示例 2:
该示例的负载包含了一个 aps 的字典,指定设备显示一个警告消息并在左边包含一个关闭按钮和右边显示一个本地化的”action”按钮。在该例中,”PLAY”被作 为键使用来从Localizable.strings文件里面当前偏好语言的字典里面获取对应的“Play”的字符串。aps 字典同样要求应用程序的图标显示数字 5。
{ "aps" : { "alert" : { "body" : "Bob wants to play poker", //消息 "action-loc-key" : “PLAY" }, "badge" : 5, //显示在App左上角的角标数,代表未读消息,需要自己的服务进行统计和控制,apns不支持+1或者-1的操作。 }, "parm1" : "bar", //控制参数</span> "parm2″ : [ "bang", "value" ] //扩展参数 }
示例 3:
该示例的负载指定设备应用显示一个警告信息并包含关闭按钮和查看按钮。同时它要求应用程序的图标显示数字 9,包含震动和提示音,默认sound为default
{ "aps" : { "alert" : "message",//消息 "badge" : 9,//显示9个角标 "sound" : "default" //震动提示音。默认为default }, "parm1″ : "bar",//扩展参数1 "parm2″ : 2 //扩展参数2 }
示例 4:
下面的示例显示了一个空的 aps 字典,因为 badge 属性被隐藏了,所以当前应用程序图标的任何数字都会被移除。而自定义属性 acme2 是一个包含两个整形的数组。
{ "aps" : { "alert" : "",//空消息 不会出现弹窗提示 "badge" : 9,//显示9个角标数,这种方法用于同一账号登录两台设备,在一个设备上看了消息,未读书减少,另一个设备上的脚表也有同步减少。 "sound" : "" //没有真的和提示音 }, "acme1" : 1 //扩展参数 }
博客内容仅代表个人观点,如发现阐述有误,麻烦指正,谢谢!