使用cordova和firebase推送通知云消息:registrationID不断变化

时间:2016-12-14 09:04:04

标签: android cordova push-notification firebase-cloud-messaging

使用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?

2 个答案:

答案 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();">
相关问题