나는 phonegap-plugin-push를 사용하여 Android 기기에 푸시 알림을 보내고 있습니다.iOs가 포함 된 Phonegap 푸시 알림 플러그인
iOs에 알림을 보내는 방법을 알아 내려고하고 있습니다.
안드로이드와 같은 클라이언트 응용 프로그램 같은 방식에서I'get 토큰에 등록했습니다 나는 클라이언트의 토큰을 얻을 후
var push = PushNotification.init({
android: {
senderID: "5993...475"
},
ios: {
alert: "true",
badge: true,
sound: 'false'
},
windows: {}
});
push.on('registration', function(data) {
$.ajax({
url: '/save-token/',
data: {token: data.registrationId},
success: function (json) {
}
});
});
, 나는 푸시 알림을 send'em하려고 :
$to = ModelGcmTokens::getInstance()->getToken($userId);
$API_KEY = 'AIzaS...HcEYC346zQ';
$message = array(
'data' => array(
'title' => ($title) ? $title : 'Test!',
'message' => $message
),
'to' => $to
);
$message = json_encode($message);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://gcm-http.googleapis.com/gcm/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $message);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization:key={$API_KEY}",
"Content-Type:application/json",
));
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
// further processing ....
if ($server_output == "OK") {
return true;
} else {
return false;
}
구글 클라우드 메시징 InvalidRegistration와 오류 응답 :
{"multicast_id":4701637331500989392,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
내가이 오류를봤을 때 - 클라이언트의 토큰이 잘못되었다고 말했습니다. 하지만 안드로이드에서와 같은 스크립트로 얻을 수 있습니다. 그리고 그것은 안드로이드에서 작동합니다.
유일한 차이점, 내가 볼 것을 - 토큰의 형식은 다음과 같습니다
사람이 내가 iOS에서 작동 푸시 플러그인을 얻는 방법을 말해 줄래? iOs 토큰의 문제점은 무엇이며 iOs가 수신 할 수 있도록 GCM에 메시지를 보내려면 어떻게해야합니까?
미리 조언 해 주셔서 감사합니다. 나는 정말로 붙어있다.
Apple 푸시는 푸시 보내기 환경, 개발 환경 및 푸시 생성 환경이 서로 다릅니다. dev 토큰을 구해서 prod 환경으로 보내거나 그 반대로 보내면 작동하지 않습니다. iOS에 푸시를 보내려는 환경을 알고 있습니까? – Gruntcakes
음, 프로덕션 키를 가지고 프로덕션 서버에 보냅니다. –
그리고 '프로덕션'또는 '프로덕션'토큰을 얻는 방법을 실제로 이해하지 못합니다. 나는 GCM 서버에 신호를 보내고 거기에서 토큰을 얻을 때 플러그인의 마술을 통해 그들을 얻는다. 어떤 종류의 토큰 이냐 - 나는 모른다. 하지만 프로덕션 p12 키를 GCM 서버에 업로드 한 이후 프로덕션으로 간주됩니다. –