用php脚本的苹果推送通知
问题描述:
我能够连接到apns,并通过插入值来检查数据库,只是检查我得到“消息传递”的消息,但它没有显示任何通知....任何人都可以告诉我在哪里我错了......用php脚本的苹果推送通知
$deviceToken = '**********************';
$payload['aps'] = array('alert' => 'This is the alert text', 'badge'
=> 1, 'sound' => 'default'); $payload = json_encode($payload);
$passphrase = '***';
$apnsHost = 'gateway.sandbox.push.apple.com'; $apnsPort = 2195; $apnsCert = 'ck.pem';
$streamContext = stream_context_create(); stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert); stream_context_set_option($streamContext, 'ssl', 'passphrase',$passphrase);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
if (!$apns)
{
$check = $errorString; $query = "INSERT INTO tbl_checkData(friend_nickname) VALUES('$check') "; $result=mysql_query($query); } else{
$check = "connected"; $query = "INSERT INTO tbl_checkData(friend_nickname) VALUES('$check') "; $result=mysql_query($query); }
$apnsMessage = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $deviceToken)) . pack("n",strlen($payload)) . $payload;
//chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
$result=fwrite($apns, $apnsMessage);
if (!$result)
{
$check = 'Message not delivered' ; $query = "INSERT INTO tbl_checkData(friend_nickname) VALUES('$check') "; $result=mysql_query($query);
} else { $check = 'Message delivered' ; $query = "INSERT INTO tbl_checkData(friend_nickname) VALUES('$check') "; $result=mysql_query($query);
}
enter code here
fclose($apns);
答
$ apnsHost = 'gateway.sandbox.push.apple.com';从这个网址
删除沙箱,它会运行... 我测试...
答
确保: 1 - 您的应用程序没有运行,因为只有使用推送通知,当应用程序被关闭通知使用。 设备的2设备令牌正确还确保推送通知证书也针对同一设备进行了配置。 3-确保您的设备已连接到互联网。
你可以看看这个链接。
+0
$ apnsHost ='gateway.sandbox.push.apple.com';只需从这个网址中删除sandox,它就会运行.... – sandeepKumar 2012-05-04 11:32:40
可能是你必须标记到这也http://*.com/questions/tagged/apple - 推送通知 – Charan 2012-04-23 08:49:37
是你的应用程序运行?如果是的话,你永远不会得到推送通知。 – Chakalaka 2012-04-23 09:40:45