我使用 Delphi XE7 创建了一个移动应用程序。该程序通过 Kinvey 和 GCM 发送推送通知。首次安装 APK 时,它会发送一个推送通知,该通知工作正常。秒次(同一设备上的同一个APP)发送两次,第三次,三次,以此类推。我发现问题是由在 Kinvey/users 下添加更多 ID 引起的。因此,如果我手动删除所有 ID 并再次安装 APK,它将正常工作。
因此,我真的很想知道在同一设备上新安装APK时是否可以自行清除ID。
提前致谢!
我使用 Delphi XE7 创建了一个移动应用程序。该程序通过 Kinvey 和 GCM 发送推送通知。首次安装 APK 时,它会发送一个推送通知,该通知工作正常。秒次(同一设备上的同一个APP)发送两次,第三次,三次,以此类推。我发现问题是由在 Kinvey/users 下添加更多 ID 引起的。因此,如果我手动删除所有 ID 并再次安装 APK,它将正常工作。
因此,我真的很想知道在同一设备上新安装APK时是否可以自行清除ID。
提前致谢!
似乎您正在使用TBackendPush组件,而不是它的设计用途。
组件名称中的“Backend”强烈表明该组件必须在服务器端应用程序中使用,这可以触发向所有注册设备发送广播消息。
将其放在客户端可能会导致意外结果。此外,通过将其包含在移动应用程序中,您可以在 APK 文件中包含 Kinvey 帐户凭据。凭据可以被其他人提取,然后用于从您的 Kinvey 帐户发送消息。
如果您需要一种发送推送通知的方法,有两种方法 - 但是我不知道 Kinvey 是否支持这两种方法:
我有同样的问题。AFAIK 答案是否定的,安装新的 APK 或卸载应用程序不会从后端提供商(Kinvey、Parse、Azure 通知中心)注销您的 ID。
我的解决方案是在 gcm 有效负载中添加一个collapse_key
Ps:在我的情况下,通知中心的注册过期(我不知道 Kinvey 是否也有)所以推送是在注册的同时收到的,但是注册崩溃了,所以你只需“接收”一个,直到旧的注册过期