Ioni c V3: невозможно получать уведомления Pu sh на устройствах iOS - PullRequest
0 голосов
/ 26 мая 2020

Я не могу получать уведомления pu sh на iOS устройствах, использующих phonegap-plugin-pu sh. Устройство успешно зарегистрировано в FCM, и я также без проблем получил RegistrationId. Но когда я пытаюсь отправить уведомления из FCM / Postman, устройство иногда регистрирует полученные уведомления, а иногда нет.

Вот мои конфигурации:

  • Ioni c: 3.19.0
  • Cordova: 8.1.2
  • cordova- ios: 5.1.1
  • phonegap-pluginpu sh: 2.3. 0

Ниже приведены шаги для настройки FCM:

  1. Создан проект в консоли FCM
  2. Добавлен iOS Приложение с идентификатором пакета приложений / именем пакета
  3. Загружены ключи аутентификации APNS (файл P8), сгенерированные на сайте developer.apple.com

У меня есть профили обеспечения и сертификаты, созданные правильно чтобы уведомления pu sh работали. Я поместил файл GoogleService-Info.plist в root каталога проекта и включил Фоновые режимы в Xcode, а в приложении также есть Pu sh Уведомления добавлена ​​возможность.

Ниже приведен код:

  • Установлен phonegap-plugin-pu sh с идентификатором отправителя

    cordova plugin add phonegap-plugin-push --senderID="XXXXXXXX"

  • Я создал службу pu sh и вызвал в ней методы pu sh на событии platform.ready
   public deviceID: string;
   private pushObject: PushObject;
   private options: PushOptions = {
     android: {
       senderID: '',
     },
     ios: {
       alert: true,
       badge: true,
       sound: false
     },
   };

   constructor(private push: Push) {
        this.platform.ready()
        .then(source => {
            if (source === 'cordova') {
                this.init();
            }
        });
    }

    init(): void {
        this.pushObject = this.push.init(this.options);
        this.registerDevice();
        this.receiveNotifications();
        this.handlePushErrors();
    }

    registerDevice(): void {
        this.pushObject.on('registration')
            .subscribe(data => {
                this.deviceID = data.registrationId;
            });
    }

    receiveNotifications(): void {
        this.pushObject.on('notification').subscribe(notification => {
            console.log('onNotification-->', JSON.stringify(notification));
        });
    }

    private handlePushErrors(): void {
        this.pushObject.on('error').subscribe(e => console.error(`Push object error: ${e}`));
    }

Журналы в XCode выглядят следующим образом:

 4.13.0 - [Firebase/Core][I-COR000003] The default Firebase app has not yet been configured. Add `[FIRApp configure];` (`FirebaseApp.configure()` in Swift) to your application initialization. Read more: https://firebase.google.com/docs/ios/setup#initialize_firebase_in_your_app.
2020-05-25 13:23:17.072513+0530 Your Bank[895:312952] 4.13.0 - [Firebase/Analytics][I-ACS023007] Firebase Analytics v.40200000 started
2020-05-25 13:23:17.072867+0530 Your Bank[895:312952] 4.13.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see https://help.apple.com/xcode/mac/8.0/#/dev3ec8a1cb4)
FCM Registration Token: dDUDsgulex8:APA91bESy4iycqrnn0ANJ8piMo4I_Vzzt3Bfci2bxxxxxxxxxxxxBqa2ohv6tke4OICFzjmyEt9kbZ-3YFttVQUfHlmrQDy36Ffz_xxxxxxxxxxxxxxxxxxxxxxxxx
Push Plugin register success: {length = 32, bytes = 0xcffbfefa 6f27d9b5 9e4f3dad 9b78447a ... fee6ba5a 1fc2e06b }
PushPlugin skip clear badge

Наряду с приведенным выше выводом я также видел одно предупреждение, как показано ниже, и как только я добавил FirebaseAppDelegateProxyEnabled в список информации, предупреждение будет ушел, но по-прежнему я не могу получать уведомления на устройстве iOS

2020-05-26 11:21:47.194933+0530 Your Bank[1077:493657] 4.13.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.

Однако Android работает без проблем с вышеуказанным кодом и конфигурациями, и я всегда получаю уведомления на Android устройствах, но на iOS устройствах поведение ior не является согласованным, и проблема носит прерывистый характер (иногда я получаю, а иногда нет), но журналы сервера чистые, и на стороне FCM нет ошибок.

...