我们希望能够将简单的文本消息推送给我们所有的iphone用户。为此,我们显然需要创建一个存储设备令牌的服务器端代码,并在必要时推送消息。这样做有没有好的例子? (谈到服务器代码)为iOS(服务器端)实施推送通知
感谢,如果你想自己托管它,或者访问Urban Airship如果你确定了托管服务(他们有一个广泛的一套文档)
我们希望能够将简单的文本消息推送给我们所有的iphone用户。为此,我们显然需要创建一个存储设备令牌的服务器端代码,并在必要时推送消息。这样做有没有好的例子? (谈到服务器代码)为iOS(服务器端)实施推送通知
感谢,如果你想自己托管它,或者访问Urban Airship如果你确定了托管服务(他们有一个广泛的一套文档)
看一看easyAPNS
另一个好网站的信息是雷Wenderlich的网站那里举办2部分教程:
// Push Notification code for IPHONE in PHP
$deviceToken = $users_rows['gcm_regid'];
$passphrase = 'pass1234';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'DrinksterDevelopment.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 120, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS' . PHP_EOL;
$body['aps'] = array(
// 'alert' => $_GET["message"].'#'.$_GET["type"].'#'.$_GET["deal_id"],
'alert' => $_GET["message"],
'sound' => 'default'
);
$body['other'] = $_GET["type"].'#'.$_GET["deal_id"];
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
$result_iphone = fwrite($fp, $msg, strlen($msg));
if (!$result_iphone)
$msg_iphone = 'Message not delivered' . PHP_EOL;
else
$msg_iphone = 'Message successfully delivered' . PHP_EOL;
mail('[email protected]', 'IOSPushMsgStatus', $msg_iphone);
fclose($fp);
} //if($users_rows['Platform'] == 'Web' OR $users_rows['Platform'] == 'Android')
如果我使用共享托管服务器,是否可以将证书上传到它并使用此PHP代码?我尝试过,但找不到方法 - 我使用iPage。 –
请注意Apple将APN连接的重复打开和关闭视为拒绝服务连接。如果您每天发送一次推送通知,则根据Apple开放/关闭连接是正常的。 – gnasher729
这就是Ray Wenderlich ... –
哎呀,感谢您的更正 – Frank