我正在开发一个phonegap应用程序,并按照本教程实现PushPlugin.但是,它表示每次触发deviceready事件时注册应用程序.这意味着即使先前已注册,它也会在GCM上注册该设备.
这让我有点不舒服,因为它似乎不是一个好习惯,因为该设备已经注册,所以,我决定来这里问.这是一个好习惯吗?如果没有,为什么?这有一些长期并发症吗?
在我们的应用程序中,我们发现这是一个很好的做法,原因有以下几点:
用于注册设备的API返回表示该设备的令牌.从我所看到的情况来看,GCM不保证令牌将无限期保持有效.因此,注册失败可能导致设备令牌过期.
注册GCM可使服务意识到您的设备处于活动状态.根据我们的观察,最近在GCM注册的设备似乎最快收到推送通知.也就是说,给定2个设备,一个最近注册(设备A),另一个最后一次注册(设备B),设备A总是会更快地接收推送通知 - 通常在设备B之前几分钟.这就是我们观测到的.
在Google的官方GCM客户端演示应用程序中,只有在设备上安装了新版本的应用程序时,他们才会注册到GCM.因此我认为这是最好的做法.
也就是说,每次应用程序启动时注册都会确保您的服务器获得注册ID,即使它以某种方式丢失了注册ID,但如果您的注册ID在服务器中正确保留,那么这应该不是问题.