我有一個表像這樣增加證件號碼
|------------|-----------|
|device_token|badge_count|
|------------|-----------|
|123456789 |3 |
|------------|-----------|
|987654321 |2 |
|------------|-----------|
我有PHP創建兩個數組:
$query = mysql_query("SELECT * FROM push");
$deviceToken = array();
while($row = mysql_fetch_assoc($query)){
$deviceToken[] = $row['device_token'];
$badgeCount[] = $row['badge_count'];
}
我然後將其插入這樣的:
foreach($deviceToken as $key=>$value){
echo $badgeCount[$key];
$body['aps'] = array(
'alert' => $message,
'sound' => 'default',
'badge' => $badgeCount[$key],
);
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $value) . pack('n', strlen($payload)) . $payload;
$result = fwrite($fp, $msg, strlen($msg));
if (!$result){
die('Message not delivered' . PHP_EOL);
}
}
這將返回迴音3
2
。但$payload
未成功給出正確的「徽章號碼」
並且在推送通知中沒有顯示徽章號碼。如果我用'badge' => 2
替換'badge' => $badgeCount[$key]
,徽章號碼顯示2?
任何想法我做錯了什麼?
我迷路了。預期的和當前的輸出是不正確的? – dan08
我不認爲'$ payload'正在編碼'$ badgeCount [$ key]' – maxisme
你想在每次迭代時追加到'$ body ['aps']'嗎?要做到這一點,你的任務應該是'$ body ['aps'] [] = array(...' – dan08