我有一个Xamarin安卓应用程序,它实现了FCM通知,正如微软在其Xamarin文档中所描述的那样:https://learn.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows
多年来,该应用程序一直完美运行。但自从安卓12发布以来,以及2021年11月API 30级的要求,我们无法向少数用户发送通知。Firebase表示,我们使用的FCM代币(由客户提供(未注册或无效。
至少在一个案例中,问题在几天内就消失了。但它对其他人来说仍然存在。它不会影响所有安卓12用户,但唯一受到影响的是安卓12的用户。到目前为止,它似乎只影响那些安装了新的安卓12设备的人。从11升级到12的用户没有发现问题。
我们正在使用";旧的";微软在文档中提到的Xamarin FCM库。那些仍然使用OnTokenRefresh等的库。任何使用较新库的尝试都会导致库之间似乎无法解决的版本冲突。
有什么想法吗?
更新:即使在更新应用程序以使用最新的Xamarin和Firebase库后,我们仍然从应用程序中获得无效的FCM令牌。
发现问题与FCM库中的兼容性问题无关。这是由于Android 12 WebView发送cookie的方式发生了变化。(我们将FCM代币作为cookie传递(奇怪的是,这只影响了某些Android 12设备,但并不是所有设备。解决方案是确保我们用完整的URL设置cookie,例如";https://example.org"而不是简单的"网站";example.org";。