Android блок FCM игнорируется - PullRequest
0 голосов
/ 21 мая 2019

Это моя полезная нагрузка. Когда я отправляю его, я могу получить уведомление, но click_action игнорируется и запускает активную программу запуска. Но когда я помещаю "click_action" в блок уведомлений, он работает. Почему блок Android игнорируется?

{
"to": "my tocken",
"data": {
    "url": "dfhdfh",
    "action": "fhdfg",

},
"notification": {
    "title": "dfgsdfg",
    "body": "dfgdg"
},
"android": {
    "notification": {
        "click_action": "NOTIFICATION_ACTIVITY"
    }
}

}

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Я думаю, вам следует отправить только сообщение с данными, а затем в onMessageReceived из FirebaseMessagingService вы можете создать собственное уведомление и извлечь данные из RemoteMessage объекта.

public class CloudMessagingService extends FirebaseMessagingService {    
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage){
        //Extract data from remote message
        //trigger notification
    }
 }

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

Также объявите CloudMessagingService как службу в AndroidManifest.xml с intent-filter как

<service android:name=".fcm.CloudMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>
0 голосов
/ 21 мая 2019

В push-уведомлениях Firebase есть три типа сообщений

  • Уведомление
  • Сообщение данных
  • Сообщения с уведомлением и данными.

И уровень доступа этого типа на стороне андроида немного отличается друг от друга, поэтому вы должны понимать, что перед внедрением push-уведомлений как на задней стороне, так и на стороне андроида

Вы можете лучше понять, прочитав этот блог https://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

...