当使用Xamarin开发时,Android 12或API级别30+是否对某些设备的通知造成了影响?

3
我有一个Xamarin Android应用程序,完全按照Microsoft在其Xamarin文档中描述的方式实现FCM通知:https://learn.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设备上的用户。从11升级到12的用户没有看到这个问题。
我们正在使用“旧”的Xamarin FCM库,这是Microsoft在其文档中提到的库。那些仍然使用OnTokenRefresh等功能的库。任何尝试使用更新的库都会导致似乎无法解决的库版本冲突。
你有什么想法吗?
更新:即使将应用程序更新为使用最新的Xamarin和Firebase库,我们仍然会从应用程序中获得无效的FCM令牌。

1
如果Google API更改行为,这很少是Xamarin特定的问题。我强烈建议您使较新的FCM包正常工作。也许可以描述一下您遇到的冲突是什么? - Cheesebaron
我遇到的冲突太荒谬了,无法深入探讨。就像旧日的DLL地狱一样。解决一个冲突只会创建另一个冲突,而这个冲突只能通过打破刚刚修复的内容来解决。我希望找到一些成功使用最新库的人,看看他们正在使用哪些库的组合。我很生气微软的文档只引用了一些非常旧版本的库。 - ron
我也有点困惑,因为只有一些Android 12设备受到影响。我甚至无法在自己的设备或模拟器上复现这个问题。 - ron
我们正在使用最新的 FCM 库,没有问题。所以我有点好奇你究竟看到了什么。 - Cheesebaron
我想我已经解决了版本冲突的问题。我刚刚创建了一个全新的项目,从头开始添加了我所需的最新版本库。现在我有一个使用最新库的工作应用程序。我很快就会测试它,看看是否使用最新版本的所有内容可以解决我们遇到的问题。 - ron
1个回答

1
结果表明,问题与FCM库中的兼容性问题无关。它是由Android 12 WebView发送cookie的方式的更改引起的。(我们将FCM令牌作为cookie传递)。奇怪的是,这只影响了某些Android 12设备,而不是所有Android 12设备。解决方案是确保我们使用完整的URL(例如"https://example.org")设置cookie,而不是仅使用站点名称"example.org"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接