我有一个带有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
有什么想法吗?谢谢帮忙。
1条答案
按热度按时间ws51t4hk1#
你的google-services json包含一个额外的SHA证书指纹吗?