您的位置:首页 > 移动开发 > IOS开发

ios push notification

2012-11-20 16:46 471 查看
开发状态服务器地址 gateway.sandbox.push.apple.com 2195

产品状态服务器地址 gateway.push.apple.com 2195

Development和Production两个版本对应的apns device token是不同的,前者是develop的mobileprovision下获取的。后者是production的mobileprovision获取的。

Development和Production两个版本可以共用一个App ID,但是不能共用一个mobileprovision,所以要单独生成Distribution的证书供production版本使用。

注:Distribution的版本是无法在设备上debug调试的!

Development和Production两个版本的code sign是不同的,前者是iPhone Developer,后者是iPhone Distribution。注意不能搞错。

无论是Development Push SSLCertificate还是Production Push SSL Certificate 都有过期时间的。Development Push SSL Certificate有效期三个月,而ProductionPush SSL Certificate的有效期是一年。需要注意在过期之前生成新的证书,以免影响使用。



服务器端发出的json包是有大小限制的,最大256字节,包括自定义字典集。

aps中的alert字符串里是可以添加"\n"做换行的。

json包中除了alert,badge,sound之外,还是是可以自定值的。

额外的自定义值:

  $payload['aps'] = array('alert' => 'This is the alert text', 'badge' => 1, 'sound' => 'default');

  $payload['server'] = array('serverId' => $serverId, 'name' => $name);

  $output = json_encode($payload);

  当用户按下“View”后,自定义server值将被传递到设备中的程序。JSON 值如下:

  {

  "aps" :

{ "alert" :

{

"action-loc-key" : "显示" ,

"body" : "This is the alert text"

},

"badge" : 1,

"sound" : "default" },

  "server" : { "serverId" : 1, "name" : "Server name")

  }

  256字节的限制适用于整个payload,包括自定义字典集。

  原生接口

  在Server Density中,一旦产生了一条提示,将建立一个payload并插入队列中。因此有必要时我们可以同时发送多个payload。

  Apple推荐使用这种方法,因为如果你在发送各payload时频繁连接和断开,APNS有可能会封锁你的IP。

  如Apple 描述:

  原生接口使用原生socket,具有二进制内容,采用数据流技术,不产生回馈。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: