android - 每次应用程序启动时在 GCM 上注册设备是正确的方法吗?

标签 android cordova push-notification google-cloud-messaging

我正在开发一个 phonegap 应用程序并关注 this实现 PushPlugin 的教程。但是,它表示每次触发 deviceready 事件时都要注册该应用程序。这意味着它会在 GCM 上注册设备,即使它之前已经注册过。

这让我有点不舒服,因为这似乎不是一个好的做法,因为设备已经注册了,所以,我决定来这里问问。这是一个好习惯吗?如果不是,为什么?这是否有一些长期并发症?

最佳答案

在我们的应用程序中,出于以下几个原因,我们发现这是一种很好的做法:

  1. 用于注册设备的 API 会返回代表该设备的 token 。据我所知,GCM 不保证 token 将无限期地保持有效。因此,注册失败可能会导致您的设备 token 过期。

  2. 向 GCM 注册,让服务知道您的设备处于 Activity 状态。根据我们的观察,最近向 GCM 注册的设备似乎接收推送通知的速度最快。也就是说,给定 2 台设备,一台最近注册(设备 A),另一台是几天前注册的(设备 B),设备 A 总是会更快地收到推送通知——通常比设备 B 早几分钟。这就是我们想要的观察到的。

关于android - 每次应用程序启动时在 GCM 上注册设备是正确的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910803/

相关文章:

ios - 如何使用visual studio for ios生成ipa

ios - 在 iOS 上调试 Cordova (PhoneGap) 代码

swift - PWA 中的额外边距 - 无法拉伸(stretch)整个高度

google-chrome - Web 推送服务工作人员注册错误 - 注册失败 - 无法检索公钥?

iphone - 与推送通知的声音有关的问题

android - 库打包在Android中的工作方式

android - 如何在 Android Studio 中使用 git 分支

android - 如何在 flutter 中更改 svg 图像的大小?

android - 在后台工作有哪些限制?

ios - FCM 推送通知在 iOS 11 上不起作用