FCM onNotification ioni c ничего не делает - PullRequest
0 голосов
/ 25 февраля 2020

Я использую Ioni c 4, и в настоящее время мое приложение подписывается на topi c, но onNotification.subcribe вообще не запускается

Я использую почтальон для проверки и от чего Я вижу, что мне нужно добавить click_action к моей json полезной нагрузке под уведомлениями, чтобы активировать onNotification, но когда я делаю это, я получаю сообщение об ошибке. Это ошибка, которую FCM возвращает в почтальоне, когда я добавляю click_action

Я тестирование на Android, а не на iOS

"code": 400,
"message": "Invalid JSON payload received. Unknown name \"click_action\" at 'message.notification': Cannot find field.",
"status": "INVALID_ARGUMENT"

вот так выглядит моя json полезная нагрузка

{
"message":{
    "data":{
        "route":"dashboard"
    },
    "topic":"6616",
    "notification":{
        "title":"user id ",
        "body":"body test 2",
        "click_action":"FCM_PLUGIN_ACTIVITY"
    }
}

есть идеи о том, что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Здесь описывается, как работать с уведомлением fcm от Google в пределах ioni c.

. Вам необходимо запустить проект firebase с сервисом уведомлений и загрузить google-сервисы. json

Конденсатор имеет встроенную функцию уведомления Pu sh. Импортируйте Pu sh в ваше приложение / страницу с помощью этой

установки:

ionic start capApp blank
ionic integrations enable capacitor

npx cap init
? App name: CapApp
? App Package ID: com.mydomain.myappname

ionic build

npx cap add android

Код:

imports in home.page.ts

import {
  Plugins,
  PushNotification,
  PushNotificationToken,
  PushNotificationActionPerformed } from '@capacitor/core';

const { PushNotifications } = Plugins;

export class HomePage implements OnInit {

ngOnInit() {
    console.log('Initializing HomePage');

    // Register with Apple / Google to receive push via APNS/FCM
    PushNotifications.register();

    // On success, we should be able to receive notifications
    PushNotifications.addListener('registration', 
      (token: PushNotificationToken) => {
        alert('Push registration success, token: ' + token.value);
      }
    );

    // Some issue with our setup and push will not work
    PushNotifications.addListener('registrationError', 
      (error: any) => {
        alert('Error on registration: ' + JSON.stringify(error));
      }
    );

    // Show us the notification payload if the app is open on our device
    PushNotifications.addListener('pushNotificationReceived', 
      (notification: PushNotification) => {
        alert('Push received: ' + JSON.stringify(notification));
      }
    );

    // Method called when tapping on a notification
    PushNotifications.addListener('pushNotificationActionPerformed', 
      (notification: PushNotificationActionPerformed) => {
        alert('Push action performed: ' + JSON.stringify(notification));
      }
    );
}

Другой способ с ioni c 4

ioni c 4 Реакция приложения с использованием конденсатора

С плагином Ioni c cordova для fcm не так легко работать и тестировать, я думаю, что конденсатор - лучшее решение!

0 голосов
/ 25 февраля 2020

То есть для Android / экосистемы Google полезная нагрузка отличается от той, для которой APN / iOS требует другого подхода.

click_action относится только к Google / Android

См. пример сообщения кроссплатформенного уведомления: https://firebase.google.com/docs/cloud-messaging/concept-options#example -notification-message-with-platform-speci c -delivery-options

Подробнее см. здесь, чтобы правильно настроить объект уведомления и полезная нагрузка на платформу: https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification -payload-support

...