我想在收到推送通知时自动打开应用程序.
我已经尝试过,但仍然无法按预期工作.
下面的代码在应用处于活动状态或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-如何在收到推送通知时自动打开应用程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)