美文网首页
APNS注意的事项

APNS注意的事项

作者: futur_zwl | 来源:发表于2017-08-14 17:00 被阅读0次

    1.反馈服务

    Apple 还提供了一个 反 馈服务 ,你应该定期查询。它提供了一个以前使用过但不再有效的(例如用户卸载了你的iPhone程序)设备令牌列表。你可以从你的数据库中删除这些设备令牌。

    本教程不涉及反馈服务的使用。

    2.创建载荷

    使用 PHP 很容易根据数组并 转 换成 JSON而创建载荷:

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

    $payload = json_encode($payload);

    显示 $payload 的内容可以看到传送到APNS 的 JSON字符串:

    {

    "aps" : { "alert" : "This is the alert text", "badge" : 1, "sound" : "default" }

    }

    这将使消息显示于设备上,触发提升声音并将“1”置于程序图标上。默认按钮“Close”和“View”同时会显示于弹出窗口上。

    对于 Server Density iPhone程序而言,让用户按下“View”直接进入产生此提示的服务器是很重要的,所以我们增加了额外的自定义值:

    $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" : "This is the alert text", "badge" : 1, "sound" : "default" },

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

    }

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

    原生接口

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

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

    3.Push Notification Provider 是一个应用程序,用于通过 APNs 发送推送通知给 iPhone 应用。

    通过 APNs 发送推送通知有几个步骤:1. 使用前面创建的 SSL 证书与 APNs 通讯;

    2. 构造所要发送的消息载体;

    3. 发送载体到APNs;

    APNs 是一个基于流的 TCP socket,你的 provider 以 SSL 协议与其通讯。推送通知(包括载体)是以二进制流的方式发送的。和APNs 建立连接后,你可以维持该连接并在连接中断之前发送多个通知。

    技巧: 应避免每发送一次推送通知就建立、关闭一次连接。频繁的建立、关闭连接可能会被 APNs 认为是 DOS 攻击,从而拒绝发送 provider 的推送通知发送请求。

    相关文章

      网友评论

          本文标题:APNS注意的事项

          本文链接:https://www.haomeiwen.com/subject/ufnurxtx.html