在開發向蘋果Apns推送消息服務功能,咱們須要根據Apns接受的數據格式進行推送。下面積累了我在進行apns推送時候總結的 apns服務接受的Json數據格式ios
示例 1:數組
如下負載包含哦一個簡單的 aps 字典。它使用字符串而不是字典做爲 alert 的值,該負載一樣包含了一個自定義的屬性數組。spa
{ "aps" : { "alert" : "message" },//alert表示推送的消息文本 "parm" : [ "key", "value" ] //parm 表示其餘業務參數,提供擴展,ios端能夠獲取到針對不一樣的業務邏輯須要與ios端進行參數結構的約束 }
示例 2:code
該示例的負載包含了一個 aps 的字典,指定設備顯示一個警告消息並在左邊包含一個關閉按鈕和右邊顯示一個本地化的」action」按鈕。在該例中,」PLAY」被做 爲鍵使用來從Localizable.strings文件裏面當前偏好語言的字典裏面獲取對應的「Play」的字符串。aps 字典一樣要求應用程序的圖標顯示數字 5。blog
{ "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 //擴展參數 }