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