Cordova iOS уведомления с помощью phonegap-plugin-push и Firebase. Нет работы - PullRequest
0 голосов
/ 07 ноября 2018

Я создал проект Cordova с кодом Visual Studio. Я использую этот плагин: phonegap-plugin-push и я следую инструкциям.

Мне нужно использовать уведомления. Я использую Firebase и скачал google-services.json, поместил его в свой корень, запустил на Android и протестировал из облачных сообщений Firebase. Все работает.

Проблема: iOS. Я скачал GoogleService-Info.plist, поместил в свой корневой проект и корневую платформу ios. Загрузил сертификаты p8 с консоли разработчика Apple и поместил на консоль Firebase:

enter image description here

Итак, когда я запускаю это на index.js, ondeviceready:

onDeviceReady: function() {
    this.receivedEvent('deviceready');
    //alert("ciao");

    app.push = PushNotification.init({
        "android": {
            "senderID": "xxxx"
        },
        "ios": {
          "senderID": "xxxx",
          "sound": true,
          "vibration": true,
          "badge": true
        },
        "windows": {}
    });

    app.push.on('registration', function(data) {
        alert(data.registrationId);
        console.log("registration event: " + data.registrationId);
        document.getElementById("regId").innerHTML = data.registrationId;
        var oldRegId = localStorage.getItem('registrationId');
        if (oldRegId !== data.registrationId) {
            // Save new registration ID
            localStorage.setItem('registrationId', data.registrationId);
            // Post registrationId to your app server as the value has changed
        }
    });

    app.push.on('notification', function(data) {
        console.log('notification event');
        alert("qualcosa ricevuto: " + data.message + data.title);
    });

    app.push.on('error', function(e) {
        //console.log("push error = " + e.message);
        alert("push error = " + e.message);
    });
}

Я получаю токен на своем устройстве iOS (iPad и iPhone), но когда я пытаюсь протестировать его из Firebase, я не вижу свои токены, зарегистрированные на моих устройствах. Зачем? Что я делаю не так?

1 Ответ

0 голосов
/ 08 ноября 2018

Я полагаю, вы используете последнюю версию cordova-plugin-push (v2.2.3)?

Вы включили следующее в config.xml Cordova?

<platform name="ios">
    <resource-file src="GoogleService-Info.plist" />
</platform>

В противном случае проверьте значение data.registrationType в вашем .on('registration') обратном вызове. Значение должно быть FCM. Если он возвращает APNS, то регистрационный идентификатор будет необработанным токеном APN, а не токеном Firebase, и в этом случае в вашей конфигурации что-то не так.

...