來源:http://hi.baidu.com/tangly888/blog/item/62948520121870559358074f.htmlhtml
翻譯蘋果文檔 地址: 翻譯:tanglyios
推送通知消息負載內容服務器
每一個推送通知都帶有內容負載,這個負載內容會被應用程序下載並提醒用戶收到數據。負載內容最大容許爲256個字節,蘋果推送通知服務器拒絕任何超過最大負載字節的推送通知。記住,通知的提交是「盡力而爲」,它並不能獲得保證。app
對於每個通知,供應商組成一個JSON自動對象來嚴格遵照RFC 4627協議,這個字典必須經過aps鍵來包含另外一個字典的標示,aps鍵包含一個或多個屬性,指定如下操做:iphone
1. 向用戶顯示一個提示消息post
2. 應用程序圖標上的一個徽章號碼ui
3. 可播放的聲音spa
警告: 警告你能夠將提示消息,徽章圖標號碼,播放聲音結合成一個單一的通知消息,你應該考慮到推送通知的人機界面問題,例如,用戶可能受到頻繁的提示消息和警告聲音,這然人煩。翻譯
當通知到達時,若是這時候目標程序沒有運行,這提示消息,聲音,徽章號碼會被播放或被顯示;若是應用程序正在運行,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設備將一個通知做爲消息文原本顯示,那就的有關閉和顯示兩個按鈕