PhoneGap Push-уведомление - PushNotification.init () не срабатывает - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть проект Phonegap, который пытается получать push-уведомления с помощью phonegap-plugin-push .

Я зарегистрировался и настроил свое приложение Firebase (FCM) и загрузил google-services.json и поместил его в мой корень (рядом с config.xml).

Когда я тестирую приложение Phonegap Mobile Dev на моем устройстве, PushNotification.init ()работает как ожидалось.

** Проблема: Когда я компилирую и устанавливаю APK через Phonegap Build (онлайн), PushNotification.init () не запускается.

Мой config.xml выглядит так:

<engine name="android" spec="^7.0.0" />
<engine name="browser" spec="^5.0.4" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-network-information" spec="^2.0.1" />
<plugin name="cordova-plugin-file" spec="^6.0.1" />
<plugin name="cordova-plugin-globalization" spec="^1.11.0" />
<plugin name="phonegap-plugin-push" spec="^2.1.3">
    <variable name="FCM_VERSION" value="11.6.2" />
</plugin>
<platform name="android">
    <allow-intent href="market:*" />
    <resource-file src="google-services.json" target="app/google-services.json" />
</platform>

Мой index.js выглядит так:

onDeviceReady: function() {
    console.log('DEVICE READY...');

    var push = PushNotification.init({
        "android": {
            vibrate: true,
            sound: true,
            forceShow: true,
        },
        "browser": {
            pushServiceURL: 'http://push.api.phonegap.com/v1/push'
        },
        "ios": {
            alert: true,
            badge: true,
            sound: true
        }
    });

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

    push.subscribe('example', function () {
        console.log('Subscription error:');
        console.log(e);
    });

    PushNotification.hasPermission(function (data) {
        console.log("data.isEnabled = " + data.isEnabled);
    });


    push.on('registration', function (data) {
        console.log(data.registrationId);
        console.log(data.registrationType);
    });

    push.on('notification', function (data) {
        console.log(data.message);
        console.log(data.title);
        console.log(data.count);
        console.log(data.sound);
        console.log(data.image);
        console.log(data.additionalData);
        console.log(navigator.notification);

        navigator.notification.alert(data.message, null, data.title,'Ok');
    });
}

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

В конце концов, мне удалось достичь базовых функциональных возможностей push-уведомлений (до сих пор тестировались только на Android), полностью запустив новый проект и используя этот код из github .

После этого яУстановленные части моей предыдущей кодовой базы вместе с соответствующими плагинами, не нарушая ничего.Пока все хорошо.

0 голосов
/ 27 сентября 2018

У меня не было особых проблем при попытке запустить push-уведомления.Не совсем то решение, о котором вы просили, но пока что cordova-plugin-firebase - единственный плагин, который я получил надежно.

PS.Если я правильно помню, в их руководстве по установке iOS есть небольшая ошибка.

Щелкните стрелку раскрытия слева от имени сертификата, чтобы открыть параметр закрытого ключа

Эта часть неверна, вам нужно экспортировать весь сертификат без расширения.

...