使用cordova插件ktekosi-phonegap-plugin-push
,我得到了registrationID
var push = PushNotification.init({ "android": {"senderID": "my sender ID"}});
push.on('registration', function(data) {
console.log(data.registrationId);
document.getElementById("fcm_id").innerHTML = data.registrationId;
});
所以我可以通过服务器使用它来通过FCM发送通知。
我怎样才能永久修复此registrationID
?这是特定于应用的ID还是用户特定的ID?
答案 0 :(得分:1)
推送注册ID将随时间变化。这是一个通常的情况。这既不是已安装应用程序的实例,也不是特定于应用程序或特定于用户的ID。
当应用程序联机时,您需要获取推送注册ID,然后每次都将其传递到后端服务器,以使用推送注册ID更新后端服务器。
然后,您的后端服务器将生成推送通知,并将其发送给具有特定推送注册ID的FCM。然后,FCM管理在您的移动应用程序中接收推送通知。
我answered a question here告诉推送通知系统是如何工作的。你可以看看。
<强>更新强>
看起来Google已经更改了新的gcm库,如此处所述 - https://stackoverflow.com/a/16839326/3145960。你可以看看这里。所以,正如我所读到的,推送注册ID仅在应用程序收到更新或android os更新时才更新。它现在简单得多。
答案 1 :(得分:0)
尝试使用此插件“cordova插件添加cordova-plugin-fcm”。您可以找到详细信息here
获取注册ID像这样使用
<script type="text/javascript">
function onLoad() {
document.addEventListener("deviceready", Fire, false);
}
function Fire() {
FCMPlugin.getToken(
function (token) {
alert(token)
},
function (err) {
alert("Error: " + 'error retrieving token: ' + err);
}
);
};
</script>
<body onload="onLoad();">