Wir haben einen Server, der gelegentlich Pushs an unsere Benutzer sendet. Jeder Benutzer hat seinen eigenen Kanalnamen in Parse. Weil unsere iOS- und Android-Schübe ganz anders aussehen, versuchen wir, die Push zwei Mal zu senden, einmal seine Kanalnamen und Android-Geräte und einer Zeit Targeting seine Kanalnamen und ios Geräte Targeting:REST-API analysieren: Kann ich den Gerätetyp vor dem Senden an Push mit dem Kanalnamen abfragen?
$aAndroidPush = array(
"where" => array(
"deviceType" => "Android",
"channels" => array('$in' => array("push_user"))
),
"data" => array(
"action" => "com.android.action",
"alertMessage" => "this is a push",
"t" => "web",
"m" => 0
)
);
$aIOSPush = array(
"where" => array(
"deviceType" => "ios",
"channels" => array('$in' => array("push_user"))
),
"data" => array(
"alert" => "this is a push",
"sound" => "p.mp3",
"t" => "web",
"m" => 0 ,
"badge" => ""
)
);
$aHeaders = array(
"Content-Type: application/json",
"X-Parse-Application-Id: parse_app_id" .,
"X-Parse-REST-API-Key: parse_rest_key" .
);
$oRest = curl_init();
curl_setopt($oRest,CURLOPT_HTTPHEADER,$aHeaders);
curl_setopt($oRest,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($oRest,CURLOPT_RETURNTRANSFER, true);
curl_setopt($oRest,CURLOPT_URL,"https://api.parse.com/1/push");
curl_setopt($oRest, CURLOPT_POST, 1);
curl_setopt($oRest, CURLOPT_POSTFIELDS, json_encode($aIOSPush));
curl_exec($oRest);
curl_setopt($oRest, CURLOPT_POSTFIELDS, json_encode($aAndroidPush));
curl_exec($oRest);
Also meine Frage ist Gibt es eine Möglichkeit, eine Anfrage in parse (REST API oder die neue PHP API) vor dem Senden der Pushs, um zu sehen, ob der Targeting-Kanal entweder Android oder iOS verwendet und damit nur eine Push-Anfrage und nicht zwei senden?
Gemäß [this] (https://parse.com/docs/push_guide#options-platform/REST) gilt die REST-API standardmäßig für beide. Haben Sie versucht, den Gerätetyp zu entfernen und das Push-Array zu standardisieren? Z.B. Verwenden Sie den Schnittpunkt des Push-Arrays. – Chad
Wie gesagt, es ist nicht möglich, weil der Push ganz anders aussieht.Wenn ich zum Beispiel das Alert-Schlüsselwort für Android verwende, wird der Standard-ParseBroadcastReceiver anstelle meines benutzerdefinierten ausgelöst, also muss ich alertMessage verwenden. Ich kann alertMessage nicht für iOS verwenden, da iOS nur auf Warnungen wartet. –
@PetrosMastrantonas - Wenn Sie das Problem gelöst haben und eine der Antworten auf Ihre Frage hilfreich war, markieren Sie diese Antwort als akzeptiert, um zukünftigen Besuchern von SO zu helfen, das Problem zu lösen. Vielen Dank! –