android-如何在收到推送通知时自动打开应用程序?

android-如何在收到推送通知时自动打开应用程序?,第1张

概述我想在收到推送通知时自动打开应用程序.我已经尝试过,但仍然无法按预期工作.下面的代码在应用处于活动状态或MainActivity时有效,但在后台运行或仅在托盘上显示通知时不起作用.我错过了什么?publicclassMyFirebaseMessagingServiceextendsFirebaseMessagingService{@Overr

我想在收到推送通知时自动打开应用程序.
我已经尝试过,但仍然无法按预期工作.
下面的代码在应用处于活动状态或MainActivity时有效,但在后台运行或仅在托盘上显示通知时不起作用.
我错过了什么?

public class MyFirebaseMessagingService extends FirebaseMessagingService {@OverrIDepublic voID onMessageReceived(RemoteMessage remoteMessage) {    if (remoteMessage.getNotification() != null) {        if (PreferencesUtil.getInstance(this).isLoggedIn()) {            sendNotification(remoteMessage.getData().get("order_ID"));        }    }}public voID sendNotification(String messageBody) {    notificationmanager notificationmanager = null;    notificationmanager = (notificationmanager) getSystemService(Context.NOTIFICATION_SERVICE);    NotificationCompat.Builder notificationBuilder;    notificationBuilder = new NotificationCompat.Builder(this)            .setContentTitle("Notification")            .setSmallicon(R.mipmap.icon_notif)            .setContentText(messageBody)            .setPriority(NotificationCompat.PRIORITY_MAX)            .setDefaults(Notification.DEFAulT_liGHTS );    //add sound    try {        Uri sound = Uri.parse("androID.resource://" + this.getPackagename() + "/" + R.raw.siren);        ringtone ringtone = ringtoneManager.getringtone(this, sound);        ringtone.play();        notificationBuilder.setSound(sound);    } catch (Exception e) {        e.printstacktrace();    }    //vibrate    long[] v = {1000, 1000, 1000, 1000, 1000};    notificationBuilder.setVibrate(v);    notificationmanager.notify(0, notificationBuilder.build());    Intent i = new Intent(this, NotificationActivity.class);    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    startActivity(i);}}

解决方法:

这是后端需要处理的事情,

这是您目前正在使用的有效负载示例,
{
  “信息”:{
    “令牌”: “bk3RNwTe3H0:CI2k_HHwgIpodkCIZvvDMExUdFQ3P1 ……”
    “通知”:{
      “ Title”:“葡萄牙vs.丹麦”,
      “ body”:“非常匹配!”
    }
  }
}

当您的应用程序处于前台状态时,这仅使您可以控制 *** 作并执行某些 *** 作,否则仅引发通知.

详细信息,您可以检查here.

现在,为了始终控制您的通知,您需要像下面这样的有效负载,

{
  “信息”:{
    “令牌”: “bk3RNwTe3H0:CI2k_HHwgIpodkCIZvvDMExUdFQ3P1 ……”
    “数据”:{
      “ Nick”:“ Mario”,
      “ body”:“非常匹配!”,
      “ Room”:“ PortugalVSDenmark”
    }
  }
}

区别在于您需要发送数据有效负载,而不是从后端发送通知poayload.

总结

以上是内存溢出为你收集整理的android-如何在收到推送通知时自动打开应用程序?全部内容,希望文章能够帮你解决android-如何在收到推送通知时自动打开应用程序?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存