Xamarin.ios 如果推送应用仅在发送推送时激活,如何处理device.token更改?

Xamarin.ios 如果推送应用仅在发送推送时激活,如何处理device.token更改?,xamarin.ios,mono,xamarin.android,Xamarin.ios,Mono,Xamarin.android,如果我有一个针对IPhone或Android的注册推送应用程序,则该应用程序只应在推送该设备的特定设备令牌时激活 因此,如果设备令牌发生变化,则应用程序将不再被激活。然后将没有机会测试并通知web后端设备令牌已更改,因为应用程序将不会运行 是否有一种方法可以设置一个“Device Token Changed”(设备令牌更改)调用,在令牌更改时通知web后端-可能传递旧令牌和新令牌,或者传递唯一的应用程序存储标识符和新令牌 理想情况下,此解决方案可以在Android、IPhone和Windows

如果我有一个针对IPhone或Android的注册推送应用程序,则该应用程序只应在推送该设备的特定设备令牌时激活

因此,如果设备令牌发生变化,则应用程序将不再被激活。然后将没有机会测试并通知web后端设备令牌已更改,因为应用程序将不会运行

是否有一种方法可以设置一个“Device Token Changed”(设备令牌更改)调用,在令牌更改时通知web后端-可能传递旧令牌和新令牌,或者传递唯一的应用程序存储标识符和新令牌


理想情况下,此解决方案可以在Android、IPhone和Windows 8中使用,但部分解决方案将被欣然接受。

在iOS中,每次启动应用程序时,您都可以
注册或删除。然后,在
didRegisterForRemotenotonications
中,您可以向服务器发送新的设备令牌。但应用程序不会启动,因为推送将是旧设备令牌,而不是新设备令牌。我没有看到任何问题。存储在服务器上
device\u id
-
device\u token
(作为
device\u id
您可以使用Wi-Fi适配器的MAC地址)字典。在
DidRegisterForRemoteNotifications
上,调用服务器的方法来更新键值对。因此,您将始终获得
设备\u令牌的实际值,因此将发送推送通知。应用程序应在每次启动时[向APN服务器]注册,并向其提供商提供当前令牌()。事实并非如此。1) 使用当前正确的值注册。2) 应用程序停止。3) 设备令牌更改。4) 从服务器触发推送尝试。5) 服务器具有错误的设备令牌。6) 应用程序不会以错误的设备令牌启动。7) 应用程序不更新服务器。