使用 Xamarin 时,某些设备上 Android 12 或 API 级别 30+ 损坏的通知有一些变化吗?

Has some change in Android 12 or API level 30+ broken notifications on some devices when using Xamarin?

我有一个 Xamarin android 应用程序,它完全按照 Microsoft 在他们的 Xamarin 文档中描述的那样实现 FCM 通知:https://docs.microsoft.com/en-us/xamarin/android/data-cloud/google-messaging/remote-notifications-with-fcm?tabs=windows

该应用程序多年来一直完美运行。但是自从 Android 12 发布以及 2021 年 11 月要求达到 API 级别 30 后,我们无法向少数用户发送通知。 Firebase 表示我们正在使用的 FCM 令牌(由客户提供)未注册或无效。

至少在一种情况下,问题在几天后就消失了。但它对其他人来说仍然存在。它不会影响所有 Android 12 位用户,但受影响的只有 Android 12 位用户。到目前为止,它似乎只影响在新 Android 12 设备上安装的人。从 11 升级到 12 的用户没有发现问题。

我们使用的是 Microsoft 在其文档中提到的“旧”Xamarin FCM 库。仍然使用 OnTokenRefresh 等的那些。任何使用较新库的尝试只会导致库之间看似无法解决的版本冲突。

有什么想法吗?

更新:即使在更新应用以使用最新的 Xamarin 和 Firebase 库之后,我们仍然从应用中获取无效的 FCM 令牌。

原来这个问题与 FCM 库中的兼容性问题无关。这是由 Android 12 WebView 发送 cookie 的方式发生变化引起的。 (我们将 FCM 令牌作为 cookie 传递)奇怪的是,这只影响了某些 Android 12 台设备,但不是全部。解决方案是确保我们使用完整的 URL 设置 cookie,例如“https://example.org”,而不是简单的站点“example.org”。