谷歌云消息Cordova澄清



我正在我的cordova应用程序中实现谷歌云消息服务。到目前为止一切都很顺利。然而,我有一些问题困扰着我,我希望有人能为我澄清。1) 在代码的这一部分,我获得了设备GCM regID,并将其进一步保存到服务器上。我想知道我是否应该调用这个脚本,从而在用户打开应用程序时将GCM regID保存到我的服务器上,或者应该调用并保存一次。。

function onNotification(e) {
switch( e.event )
{
case 'registered':
    if ( e.regid.length > 0 )
    {                    
        console.log("regID = " + e.regid);
    }
   break;
   }
 }

2) 我在控制台上注意到我的注册ID有时会更改。我想知道为什么会发生这种情况,这是否正常,以及我是否应该更新服务器上的用户GCM regID。

如果有人能帮我澄清这些,我会很高兴。谢谢

对于(1),它应该被调用并保存在服务器上一次。就像我在应用程序中工作一样,把这个id保存到服务器上一次,一切都很好。对于(2)然而,在开发过程中,注册id有时会发生变化。原因是在开发过程中,我们会完全卸载或重新安装应用程序。从而使注册id发生更改。因为注册id是在应用程序安装时分配的。但对于特殊情况,请参阅此。

  1. 每次都应该调用脚本。仅当注册ID发生更改时才更新。

  2. 读我的答案。此外,这个答案了解更多细节

您只需要向服务器发送一次注册令牌。如果您的注册令牌发生更改,则应将更改后的注册令牌发送到服务器。

如果应用程序被卸载和重新安装,或者如果GCM确定令牌以某种方式被破坏,则注册令牌可能会更改。

您应该注册一个服务来侦听注册令牌更改,它应该扩展InstanceIDListenerService,并覆盖其onTokenRefresh方法,如下所示:

@Override
public void onTokenRefresh() {
    // Fetch updated Instance ID token and notify our app's server of any changes (if applicable).
    InstanceID instanceID = InstanceID.getInstance(this);
    String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
            GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
    Log.i(TAG, "GCM Registration Token: " + token);
    // Send token to server.
}

有关更多详细信息,请考虑GCM入门文档。

相关内容

  • 没有找到相关文章

最新更新