我正在通过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());
但问题是,点击通知它只在应用程序处于前台时打开浏览器。但是当应用程序被杀或者它在后台时它不会打开浏览器,它只会打开应用程序。
答案 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"
}
}