您好,我正在尝试在Xamarin表单应用中实施FCM。 我安装了 Plugin.FirebasePushNotification 插件
我实现了刷新令牌类
[Service]
[IntentFilter(new[] { "com.google.firebase.INSTANCE_ID_EVENT" })]
public class MyFirebaseIIDService : FirebaseInstanceIdService
{
const string TAG = "MyFirebaseIIDService";
public override void OnTokenRefresh()
{
var refreshedToken = FirebaseInstanceId.Instance.Token;
Log.Debug(TAG, "Refreshed token: " + refreshedToken);
SendRegistrationToServer(refreshedToken);
}
void SendRegistrationToServer(string token)
{
// Add custom implementation, as needed.
}
}
该类用于接收通知,但在应用关闭时不接收通知
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class MyFirebaseMessagingService : FirebaseMessagingService
{
const string TAG = "MyFirebaseMsgService";
// [START receive_message]
public override void OnMessageReceived(RemoteMessage message)
{
}
}
我用了这个有效载荷
{“至”:“ APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx ...”,“通知” :{ “ body”:“非常匹配!”, “ title”:“葡萄牙vs.丹麦”}}
答案 0 :(得分:0)
在Android官方文档中,FirebaseMessaging
的方法为subscribeToTopic
。
public Task subscribeToTopic (String topic)
在后台订阅主题。 订阅操作将保留,并且将重试直到成功。 这使用Firebase实例ID令牌来识别应用程序实例,并定期将数据发送到Firebase后端。
这是Android FCM Remote Notifications的官方示例。测试了此项目后,如果不订阅通知,则应用停止后将不会收到通知。
在加载应用程序时,您可以尝试使用以下代码:
FirebaseMessaging.Instance.SubscribeToTopic("news");
答案 1 :(得分:0)
就我而言。我将OneTimeWork
与Result.retry
相加,并将setBackoffCriteria
添加至30秒以确保FirebaseMessaging.getInstance().isAutoInitEnabled()
。
如果结果为false
,我将再次使用FirebaseMessaging.getInstance(). setAutoInitEnabled(true)
运行它。
对不起,如果我的英语不好,因为我使用的是Google翻译。