Как отправить push-уведомление с пользовательским действием Click из консоли Firebase

Я собираюсь отправить push-уведомление с пользовательским действием щелчка, чтобы установить onClick уведомления, чтобы открыть точное Activity в моем проекте, когда приложение находится на переднем плане или в фоновом режиме. Во всех постах и ​​комментариях написано, что невозможно отправить уведомление с пользовательским действием клика из консоли, но в «Дополнительных параметрах» в консоли можно установить пользовательские ключи и значения данных.

Консоль Firebase

Почему нельзя установить ключ click_action и его значение?

Если можно то подскажите что мне делать. Я имею в виду, каков точный код фильтра намерений? и что я должен установить как значение click_action?

Предположим, я хочу открыть SecondActivity, щелкнув уведомление.


person Alireza Noorali    schedule 10.07.2017    source источник
comment
Возможный дубликат полезной нагрузки click_action уведомлений Firebase FCM   -  person AL.    schedule 10.07.2017


Ответы (1)


да, вы не можете отправить такое уведомление из консоли firebase, но так оно и работает, вам нужно добавить intent_filter к действию в manifest.xml

<activity android:name=".MyActivity">
    <intent-filter>
        <action android:name="com.mypackage.MyActivty_TARGET" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

и поместите значение click_action в качестве действия действия: com.mypackage.MyActivty_TARGET"

и вы читаете данные с андроида так:

String click_action = remoteMessage.getNotification().getClickAction();
Intent in = new Intent(click_action);
person Oussema Aroua    schedule 10.07.2017
comment
Что вы думаете о решении Micha F? ответ, который был принят автором этого вопроса, просто гласит, что это невозможно с Firebase Console, но это возможно - с простым обходным путем, Миха Саид - person Alireza Noorali; 11.07.2017
comment
Это решение никогда не будет работать при отправке уведомления на консоль fcm, когда приложение находится в фоновом режиме или убито. Потому что с уведомлением fcm автоматически отображает уведомление без экспорта для запуска в методе onMessageReceived. Так что вы не можете сделать это String click_action = remoteMessage.getNotification().getClickAction(); Intent in = new Intent(click_action); - person Phan Sinh; 21.01.2020
comment
@PhanSinh, а что вы можете сделать, чтобы обработать щелчок для push-уведомления, когда приложение находится в фоновом режиме? Можно ли отправлять данные именно в то действие, которое вы хотите открыть? - person Skizo-ozᴉʞS; 14.08.2020
comment
Нет, это не то, как работает консоль Firebase. Действие click_action, предоставленное в консоли, не будет частью объекта уведомления, и его нельзя перехватить с помощью getClickAction(). - person LegZ; 07.03.2021