当应用程序被杀时,单击FCM通知打开浏览器

时间:2017-10-24 08:52:35

标签: android push-notification firebase-cloud-messaging

我正在通过FCM推送通知获取一个链接,我想在浏览器中打开它。我是这样做的:

Intent notificationIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("Firebase Push Notification")
            .setContentText(messageBody)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(contentIntent);

NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

notificationManager.notify(0, notificationBuilder.build());

但问题是,点击通知它只在应用程序处于前台时打开浏览器。但是当应用程序被杀或者它在后台时它不会打开浏览器,它只会打开应用程序。

2 个答案:

答案 0 :(得分:1)

使用应用程序上下文 PendingIntent.getActivity

答案 1 :(得分:0)

当您的应用在后台并且FCM推送通知在请求中包含notification有效内容时。然后onMessageReceived方法不会触发,因此不会打开任何浏览器。

如果您想在应用程序不在前台时打开浏览器,则在发送通知请求时必须使用以下语法(在Postman中尝试)。

{
  "to": "device token",
  "priority" : "normal",
  "data":{
    "title": "title",
    "body": "body"
  }

}

以上请求不应包含notification有效载荷字段,即

{
  "to": "device token",
  "priority" : "normal",
  "notification":{   },
  "data":{
  "title": "title",
  "body": "body"
 }
}