应用关闭时未收到fcm通知

时间:2019-01-25 13:14:35

标签: android xamarin.forms

您好,我正在尝试在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.丹麦”}}

2 个答案:

答案 0 :(得分:0)

在Android官方文档中,FirebaseMessaging的方法为subscribeToTopic

  

public Task subscribeToTopic (String topic)

     

在后台订阅主题。   订阅操作将保留,并且将重试直到成功。   这使用Firebase实例ID令牌来识别应用程序实例,并定期将数据发送到Firebase后端。

这是Android FCM Remote Notifications的官方示例。测试了此项目后,如果不订阅通知,则应用停止后将不会收到通知。

在加载应用程序时,您可以尝试使用以下代码:

FirebaseMessaging.Instance.SubscribeToTopic("news");

答案 1 :(得分:0)

就我而言。我将OneTimeWorkResult.retry相加,并将setBackoffCriteria添加至30秒以确保FirebaseMessaging.getInstance().isAutoInitEnabled()

如果结果为false,我将再次使用FirebaseMessaging.getInstance(). setAutoInitEnabled(true)运行它。

对不起,如果我的英语不好,因为我使用的是Google翻译。