2015-12-04 2 views
1

Push уведомление значок не increasing.It показывает всегда 1.Я использовал PHP для отправки пуш с сервера и вот код, следующий:Push уведомление значок рассчитывать не обновляется на КСН рассчитывать

$apnsHost = 'gateway.sandbox.push.apple.com'; 
    $apnsCert = 'project_dev.pem'; 

    $apnsPort = 2195; 
    $badgecount=1; 

    $streamContext = stream_context_create(); 

    stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert); 

$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext); 
if (!$apns){ 
    exit("Failed to connect: $error $errorString" . PHP_EOL); 
}else{ 
    $messageHeader = (strlen($message) > 26) ? substr($message,0,26).'...' : $message; 

$msgd=explode(':',$message); 

$payload['aps'] = array('alert' => $messageHeader,'badge' => $badgecount, 'sound' => 'default','mess'=>$fromUserId.'||'.$userNamee.'||'.$userimage.'||'.$message,'type'=>'reply', 'unread_count'=>$unread_count); 

$output = json_encode($payload); 
$token = pack('H*', str_replace(' ', '', $token)); 

$apnsMessage = chr(0) . chr(0) . chr(32) . $token . chr(0) . chr(strlen($output)) .  $output; 

fwrite($apns, $apnsMessage); 

fclose($apns); 
} 

ответ

0

В вашем коде вы отправили свой значок всегда один, поэтому вы получаете только значок $ badgecount 1 в сторону приложения.

Вам необходимо использовать следующий тип для отправки уведомлений.

$query = "SELECT badgecount FROM pushnotifications WHERE device_token = '{$device_token}'"; 
    $query = $this->db->query($query); 
    $row = $query->row_array(); 
    $updatequery = "update pushnotifications set badgecount=badgecount+1 WHERE device_token ='{$device_token}'"; 
    $updatequery = $this->db->query($updatequery); 
    $device = $device_token; 
    $payload['aps'] = array('alert' => $pushmessage, 'badge' =>$row["badgecount"]+1, 'sound' => 'default'); 
    $payload = json_encode($payload); 

Я думаю, что вы теперь более понятны с вышеуказанным кодом.

1

badgecount всегда посылают по серверу side.it кажется, что вы отправляете $ badgecount = 1; always.Update его с другим значением, а затем check.It определенно отражают на IOS.

Смежные вопросы