2012-04-23 42 views
1

我能够连接到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); 
+0

可能是你必须标记到这也http://stackoverflow.com/questions/tagged/apple - 推送通知 – Charan 2012-04-23 08:49:37

+0

是你的应用程序运行?如果是的话,你永远不会得到推送通知。 – Chakalaka 2012-04-23 09:40:45

回答

3

$ apnsHost = 'gateway.sandbox.push.apple.com';从这个网址

删除沙箱,它会运行... 我测试...

0

确保: 1 - 您的应用程序没有运行,因为只有使用推送通知,当应用程序被关闭通知使用。 设备的2设备令牌正确还确保推送通知证书也针对同一设备进行了配置。 3-确保您的设备已连接到互联网。

你可以看看这个链接。

Push Notification

+0

$ apnsHost ='gateway.sandbox.push.apple.com';只需从这个网址中删除sandox,它就会运行.... – sandeepKumar 2012-05-04 11:32:40