来源: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设备将一个通知作为消息文本来显示,那就的有关闭和显示两个按钮