XAMARIN Android -在Xamarin.Firebase.Messaging的发布模式下,应用程序内通知不起作用

gstyhher  于 2023-03-06  发布在  Android
关注(0)|答案(1)|浏览(118)

我有一个带有Xamarin的Android应用程序,我使用FirebaseMessaging来接收通知。当应用程序关闭时,我会接收通知,当应用程序打开时,我会在应用程序中接收通知。
当我的应用程序在调试模式下运行时,* 一切正常 ,我收到的通知正常。
但是,当我的应用程序在发布模式下运行时,或者如果我使用应用程序的APK时,
仅应用程序中的通知不再工作... * 但如果应用程序关闭,它们仍然工作。
下面是 * 获取令牌 * 的代码:

public string GetToken()
        {
            string token = CrossFirebasePushNotification.Current.Token;
          
            return token;
        }

这里的代码 * 接收通知时,应用程序正在运行:*

[Service(Exported = false)]
    [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
    public class FirebaseService : FirebaseMessagingService
    {

        public override void OnMessageReceived(RemoteMessage message)
        {
            //Log.Debug(TAG, "Venant de: " + message.From);
            //Log.Debug(TAG, "Contenu de la notif: " + message.GetNotification().Body);

            if (message.GetNotification() != null)
            {
                long longDate = message.SentTime;
                DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                DateTime dateTimeNotif = start.AddMilliseconds(longDate).ToLocalTime();

                EventCatch newNotif = new EventCatch
                {
                    Id_Client = AccesData.clientCourant.Id_Client,
                    Id_Compte = AccesData.compteCourant.Id_Compte,
                    NotifTitle = message.GetNotification().Title,
                    NotifBody = message.GetNotification().Body,
                    Lu = false,
                    NotifDateHeureEnvoi = dateTimeNotif,
                };

                AccesData accesData = new AccesData();
                accesData.SauvEventLocal(newNotif);

                accesData.OnNewEvent(newNotif);
            }
        }
}

以下是事件代码,用于 * 捕获通知正文 *,**当应用程序正在运行时,**并将其显示给用户:

public void OnNewEvent(EventCatch eventCatch)
        {
            RecupNotif?.Invoke(eventCatch, EventArgs.Empty);
        }

在我的XAML页面后面的代码中,delegate

AccesData.RecupNotif += ShowNewNotification;
  • 功能 *(收到通知时,导航栏中的铃声变为红色):
private void ShowNewNotification(object sender, EventArgs e)
        {
            //frameNotif.IsVisible = true;
            btnAlertNotif.BackgroundColor = Color.Red;
        }

调试模式下,一切正常,我收到了所有通知,* 在应用程序中,以及当应用程序关闭时。*
但在RELEASE模式下,只有 * IN-APP通知 * 不起作用,对于APK,或在PRODUCTION中...
我不明白为什么?我已经坚持了一个多月了。
it seems that this unanswered question is similar to my problem
有什么想法吗?谢谢帮忙。

ws51t4hk

ws51t4hk1#

你的google-services json包含一个额外的SHA证书指纹吗?

相关问题