2016-06-29 11 views
1

は、1つの信号でプロジェクトを作成しました。グループ鍵のワン信号プッシュ通知

私の電話でPHP通知に送信できます。

複数の通知が到着したときに問題が発生します。新しい通知は、以前の通知(まだ読み取られていない)を置き換えます。

代わりに、Androidに未読の通知が2つあるとしますか?

私は同じandroid_groupを書きましたが、通知は積み重ねられず、最新のものがpreviusを置き換えています。

これは私のコードです:

<?php 
function sendMessage(){ 
$content = array(
    "en" => 'text message test' 
); 

$fields = array(
    'app_id' => "XXxxxxXX-xxxxXX-XXxxX-Xxxx-XxxxXXx", 
    'included_segments' => array('All'), 
    'data' => array("foo" => "bar"), 
    'headings' => array("en" => "Test message!!"), 
    'android_group' => 'TESTGROUP', 
    'android_group_message' => array("en" => "message"), 
    'contents' => $content 
); 

$fields = json_encode($fields); 
print("\nJSON sent:\n"); 
print($fields); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 
         'Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
curl_setopt($ch, CURLOPT_POST, TRUE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

$response = curl_exec($ch); 
curl_close($ch); 

return $response; 
} 

$response = sendMessage(); 
?> 

どのように私はこの問題を解決することができますか?

答えて

1

android_group通知スタッキングを有効にするために使用されるのは、Androidアプリのみです。

Android用Chromeを使用してウェブプッシュしている場合、見た目の変更は予想され、設定できません。 Chrome for DesktopとFirefoxでの動作は同じです。

また、android_group_messageには$ [notif_count]が含まれている必要がありますので、未読メッセージの数が表示されます。例 array("en" => "You have $[notif_count] new messages")

+1

ありがとうございます。私は解決策を見つけました。データベースに通知文字列を保存するだけで、通知を送信するデバイスがデータベースのprevius通知で読み取られているかどうかを確認します。デバイスIDに複数のノーリングがある場合は、1番目と2番目の内容の新しい通知を送信してください。この方法で私は1つの通知をもっと送ることができます。 –

関連する問題