Откройте браузер при нажатии на уведомление fcm вместо открытия активности запуска - PullRequest
5 голосов
/ 18 января 2020

Я хочу отправить URL с помощью FCM в приложение android. Можно ли открыть браузер при нажатии на уведомление FCM вместо открытия активности запуска? Я знаю, что это возможно с переопределением onMessageReceived() метода, но я не хочу это делать. Я проверил параметр click_action в полезной нагрузке, но, как сказал Firebase:

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

Я пытаюсь добавить click_action в CustomData внутри панели FireMase CloudMessaging следующим образом:

enter image description here

Но это не работает, и вместо этого откройте приложение.

Я использую почтальон, чтобы отправить уведомление для этой цели и добавить click_action к notification объекту, подобному этому:

enter image description here

Уведомление отправлено на мое устройство, но при нажатии на него ничего не произошло !!!

Важно: Мой apk выпущен в GooglePlay, и я не могу изменить исходный код приложения.

Кто-нибудь, помогите, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Передать намерение setData в PendingIntent.

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);
0 голосов
/ 18 января 2020

, когда ваше приложение находится в фоновом режиме. уведомление доставляется в системный трей устройства. При нажатии пользователем на уведомление по умолчанию открывается панель запуска приложения.

, если в сообщении содержатся данные, уведомление доставляется в системный трей устройства, а полезная нагрузка данных доставляется в дополнениях к назначению панели запуска. Activity.

, чтобы вы могли по разным данным обрабатывать условие.

  1. Установить click_action в полезной нагрузке уведомления
{
  ...
  "notification": {
      "click_action": "activity action"
  },
 ....
}

2. в mainfest вы должны настроить inter fliter.

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

, затем, когда вы щелкните по нему, он откроет это действие. вот документ descirbe:

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

, поэтому я думаю, что вы пытаетесь установить acton click_action в соответствии с действием выбора браузера или "Intent.ACTION_VIEW" и таким набором данных "http: //"

Я надеюсь, что это может помочь вам

...