Откройте браузер с помощью Push-уведомления FCM

# #android #firebase #android-push-notification

Вопрос:

Я пытаюсь открыть страницу браузера по определенному URL-адресу после того, как пользователь откроет полученное им Push-уведомление FCM. Это код, который у меня сейчас есть:

 import android.content.Intent;
import android.net.Uri;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class FMMessagingService extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
        startActivity(browserIntent);
    }
}
 

При нажатии на push-уведомление с консоли FCM ничего не происходит. Я некоторое время возился с этим, ища решения в Интернете, но, похоже, ничего не работает.

Пожалуйста, может ли кто-нибудь помочь с этой проблемой?

Обратите внимание, я невероятно новичок в этом и многого не понимаю.

Ответ №1:

Вы можете использовать уведомление о данных с помощью Intent.ACTION_VIEW

 Intent notificationIntent = new Intent(Intent.ACTION_VIEW);
notificationIntent.setData(Uri.parse(link));

PendingIntent pending = PendingIntent.getActivity(this, 0, notificationIntent, 
Intent.FLAG_ACTIVITY_NEW_TASK);
myNotification.setContentIntent(pending);
 

Если в сообщении есть данные, уведомление доставляется в системный трей устройства, а полезная нагрузка данных доставляется в extras соответствии с намерением вашей активности запуска. В соответствии с предоставленными данными вы можете соответствующим образом справиться с этим состоянием.

Установите click_action в полезной нагрузке уведомления

 {
  "notification": {
      "click_action": "activity action"
  },
 ....
}
 

В mainfest вам нужно настроить межфильтр.

 <intent-filter>
  <action android:name="some action" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
 

затем, когда вы нажмете на нее, она откроет это действие:
Если указано, действие с соответствующим фильтром намерений запускается, когда пользователь нажимает на уведомление.

Вы можете установить действие click_action в соответствии с действием выбора браузера или «Намерение.ACTION_VIEW» и такой набор данных "https://"