A.S*_*.S. 0 apple-push-notifications ios6 passbook
我正在玩苹果Passbook服务.我在所有设备上都有一个非常奇怪的行为.如果我通过APNS向设备发送推送,让他们知道某个传递有更新,他们会进行更新,但他们不会在设备的锁屏上显示任何通知.
现在我正在记录我的PHP-Webservice和APNS之间的整个通信.我总是回答headre 200和所要求的答案.(第一个序列;第二个Pass.pkpass)和设备进行更新,因为我可以在存折应用程序中看到,但正如我已经说过,我没有在锁屏上得到任何通知.设备已按照本文所述正确设置:链接
我这样做我的APNS请求:
public function sendePushNotification($passTypeID, $debug = true)
{
// Zertifikat vorhanden ?
$certFullPath = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . "api/cert/ck.pem";
if (file_exists($certFullPath))
{
/**
* Payload vorbereiten
*/
$message = 'PASSDROP UPDATE';
$body = array();
$body['aps'] = array('alert' => $message);
/**
* Host bestimmen
*/
$apnsHost = "gateway.push.apple.com"; // Development Umgbung
/**
* Stream erstellen
*/
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $certFullPath);
$fp = stream_socket_client('ssl://' . $apnsHost . ':2195', $err, $errstr, 2, STREAM_CLIENT_CONNECT, $ctx);
if (!$fp)
{
echo "Fehler beim APNS: " . $err . " / ". $errstr. "\n";
return false;
}
/**
* Payload versenden
*/
$payload = json_encode($body);
$msg = chr(0) . pack("n",32) . pack('H*', str_replace(' ', '', $this->token)) . pack("n",strlen($payload)) . $payload;
}
else
{
throw new Exception("Zertifikat-Bundle " . $certFullPath . " existiert nicht !!!");
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,Apple在推送Passbook Pass时没有读取有效载荷.
有没有人对我有什么暗示我接下来可以尝试什么?我在pass.json文件中需要什么吗?
如果您的设备正在更新并接收新的通行证,但您没有看到通知,那么您的pass.json很可能不包含changeMessage键.
要显示通知:
对于Passbook,APNS推送的唯一目的是通知设备Web服务具有新内容.所有通知活动都由旧的和新的pass.json文件之间的差异决定.
如果您的传递字段正在更改,并且您有一个changeMessage键设置但是您没有看到通知,那么在pass.json的前后部分发布相关信息可能有助于我们识别出错误.
当'after'传递替换'before'传递时,下面的json摘录将触发以下两个通知:
通过前:
"boardingPass": {
"headerFields": [{
"key": "h1",
"value": "--",
"label": "Gate",
"changeMessage": "Please proceed to gate %@"
}, {
"key": "h2",
"value": "On Time",
"label": "Status",
"changeMessage": "Flight status: %@"
}],
...
Run Code Online (Sandbox Code Playgroud)
通过后:
"boardingPass": {
"headerFields": [{
"key": "h1",
"value": "22",
"label": "Gate",
"changeMessage": "Please proceed to gate %@"
}, {
"key": "h2",
"value": "Boarding",
"label": "Status",
"changeMessage": "Flight status: %@"
}],
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1151 次 |
| 最近记录: |