push-notification - 如何使用 xamarin.android 在 Firebase 服务中再次检索 pns 句柄令牌
问题描述
我正在使用 Azure 通知中心在我的 xamarin.forms 应用程序中实现推送通知,遵循Microsoft 的此文档。该实现工作正常,我能够在 android 和 ios 设备上接收通知。我正在测试一些用例,并在 Android 中遇到令牌检索问题,如果由于某种原因应用程序在设备注册到 Azure 通知中心之前崩溃。以下是我的 Firebase 服务代码。
[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class FirebaseService : FirebaseMessagingService
{
readonly AndroidHelper androidHelper = new AndroidHelper();
public override void OnMessageReceived(RemoteMessage message)
{
base.OnMessageReceived(message);
androidHelper.SendLocalNotification(message.Data);
}
//Send pns handle for device installation with Azure Notification Hub.
public override void OnNewToken(string token)
{
PushNotifications.PNSHandle = token;
// APP CRASH OCCURS
}
}
每当生成令牌时,我都会将其存储在一个静态变量中,并稍后将其用于设备注册。
但由于 OnNewToken() 仅在安装后首次启动应用程序时运行。如果由于某种原因,假设我在将令牌分配给我的静态变量后立即崩溃,如上面 OnNewToken() 中的注释中所述,并且我重新启动应用程序,我不会再次获得该令牌。
任何人都可以在每次应用启动时再次帮助进行令牌检索或重新生成。搜索后,我从 xamarin 论坛发现了这篇文章,但无法得到我想要的东西。
解决方案
推荐阅读
- php - 如何在将数组传递给php post数据时将html输入格式化为某种格式
- php - 如何在从数据库中查询 Laravel 中的用户模型列时对其进行解密
- javascript - 根据 JWT 令牌 (ReactJS) 中的角色在页面上显示信息
- javascript - MySQL/MariaDB DELETE 查询昨天运行良好,今天影响 0 行...查询未更改
- python - 拨动开关切换太快键盘模块python
- scala - IntelliJ 无法识别 Scala 的 build.sbt
- azure - 将数据从 azure webapp 发送到两个不同 azure 订阅中的 2 个 azure 应用程序见解
- apache-nifi - 将序列号添加到文件名
- python - Python - 如何将一系列用户输入放入函数中
- linux - 从 Ubuntu 20.04LTS 卸载 Julia