來源:http://hi.baidu.com/tangly888/blog/item/62948520121870559358074f.html
翻譯蘋果文檔 地址: 翻譯:tangly
推送通知消息負載內容
每個推送通知都帶有內容負載,這個負載內容會被應用程序下載並提醒用戶收到數據。負載內容最大允許為256個字節,蘋果推送通知服務器拒絕任何超過最大負載字節的推送通知。記住,通知的提交是“盡力而為”,它並不能得到保證。
對於每一個通知,供應商組成一個JSON自動對象來嚴格遵守RFC 4627協議,這個字典必須通過aps鍵來包含另一個字典的標示,aps鍵包含一個或多個屬性,指定以下操作:
1. 向用戶顯示一個提示消息
2. 應用程序圖標上的一個徽章號碼
3. 可播放的聲音
警告: 警告你可以將提示消息,徽章圖標號碼,播放聲音結合成一個單一的通知消息,你應該考慮到推送通知的人機界面問題,例如,用戶可能受到頻繁的提示消息和警告聲音,這然人煩。
當通知到達時,如果這時候目標程序沒有運行,這提示消息,聲音,徽章號碼會被播放或被顯示;如果應用程序正在運行,ios將它作為一個NSDictionary對象提供給應用程序委托,這個字典收錄了相應COcoa屬性列表中的對象
供應商可以指定評估命名以外的消息內容,自定義消息負載內容,自定義值必須使用Json結構和基本類型:字典(對象),數組,字符串,數字,boolean。作為定制消息數據,你不應該包含用戶的一些信息。相反,為設置上下文(用戶界面)或內部指標為目的來使用它。例如,當供應商發送通知的時候,一個自定義通知消息可能會成為一個會話標示符被消息客戶端應用或時間戳確認來使用。提示消息的任何行為都不應該具有破壞性,如刪除客戶設備上的數據
關鍵:由於傳送不能夠被保證,所以你不應該依賴遠程通知設施提供有效負載消息內容給應用程序,不要再消息負載內容中帶有敏感數據,你使用它僅是告訴用戶此應用有新的數據可用了
表3-1中列出了有關蘋果服務器消息負載內容的鍵和預期值
Key |
類型 |
Comment |
alert |
字符串或字典 |
如果包含這個這個屬性 iOS 將會顯示一個標准的提示. 你可用指定一個字符串作為提醒或作為字典的值. 如果你指定了一個字符串, 它會變成有兩個按鈕的警報消息: 關閉和顯示. 如果用戶點擊查看, 應用程序將會啟動 另外, 你可以指定一個字典來作為提示的內容. 對於這類字典,請查看表3-2 |
badge |
數字 |
這個數字將作為應用程序的的徽章圖標顯示. 如果此屬性不存在, 任何當前顯示的徽章號碼將會被刪除 |
sound |
字符串 |
它是捆綁再應用程序的聲音文件名. 這個聲音文件播放聲音警報. 如果這個聲音文件不存在或指定默認值,這時會播放預設的警報音. 它的音頻必須是兼容的系統數據格式之一; 詳細信息,請閱讀“”准備定義提示音 |
表3-1 alert屬性的子屬性
Key |
Value type |
Comment |
body |
string |
The text of the alert message. |
action-loc-key |
字符串或空 |
如果字符串是指定的, 將顯示帶有兩個按鈕的警報, 其行為請看表3-1. 然而, ios 用字符串作為鍵來獲得當前本地化的字符串,並將其用於右邊按鈕的標題,代替了“view”. 如果字符串值為null,系統將顯示一個簡單的“確定”按鈕,當點擊時,將會簡單的消除按鈕. 看 “Localized Formatted Strings” 獲得更多消息 |
loc-key |
字符串 |
本地提示消息的一個字符串鑰匙, 字符串鑰匙可以格式化這樣%@ and %n$ 在loc-args指定參數變量. 看 “Localized Formatted Strings” 可以獲得更多信息. |
loc-args |
字符串數組 |
變量的字符串值格式化再loc-key出現. 看 “Localized Formatted Strings” 可以獲得更多信息 . |
launch-image |
字符串 |
圖形文件名在應用程序中已經綁定; 它可能包括擴展或省略. 當用戶點擊動作按鈕或移動動作滑塊,圖片將會被顯示出來. I如果這個屬性沒有指定, 系統會使用以前的圖片,通過在應用程序的Info.plist鍵來使用圖像識別, 或返回到默認的png文件 這個屬性再ios4.0才被添加的 |
注意:如果你想要iphone,ipad,ipod touch設備將一個通知作為消息文本來顯示,那就的有關閉和顯示兩個按鈕