Ошибка PushNotification not defined

Мне нужно отправить уведомление в свое приложение с помощью плагина push phonegap и отправить уведомление из консоли Firebase. Я также развернул плагин входа в Google Plus и создал свое приложение с помощью Phonegap Build. Когда мое приложение открывается, оно сначала проверяет логин Google, а затем действует соответствующим образом.

НЕ МОЖЕТ ПОЛУЧИТЬ РЕГИСТРАЦИОННЫЙ ID index.html

<script type = "text/javascript" src = "cordova.js"></script>
<script type = "text/javascript" src = "push.js"></script> 


var push = PushNotification.init({
                                          "android": {
                                            "senderID": "xxxxxxxxxx"
                                          },

                                        });

                                        push.on('registration', function(data) {
                                            alert('registration event: ' + data.registrationId);
                                            console.info('registration event: ' + 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
                                          }

                                          var parentElement = document.getElementById('registration');
                                          var listeningElement = parentElement.querySelector('.waiting');
                                          var receivedElement = parentElement.querySelector('.received');

                                          listeningElement.setAttribute('style', 'display:none;');
                                          receivedElement.setAttribute('style', 'display:block;');
                                        });

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



                                        push.on('notification', function(data) {
                                          console.info('notification event');
                                          navigator.notification.alert(
                                            data.message,         // message
                                            null,                 // callback
                                            data.title,           // title
                                            'Ok'                  // buttonName
                                          );
                                        });

config.xml:

<?xml version='1.0' encoding='utf-8'?>

        <widget id = "com.phonegap.myapp1" version = "1.0.0" xmlns = "http://www.w3.org/ns/widgets" xmlns:gap = "http://phonegap.com/ns/1.0">
            <name>MyApp</name>
            <description>
              My App
            </description>
            <author email = "[email protected]" href = "http://phonegap.com">
                sqlchild
            </author> 


                <preference name = "android-minSdkVersion" value = "17" /> 

                <preference name='phonegap-version' value='cli-8.0.0' />

                <preference name='pgb-builder-version' value='2' />



            <plugin name = "cordova-plugin-splashscreen" source = "npm" spec = "5.0.2"/>  



                <hook src = "scripts/cordova-google-services-version-gradle-fix.js" type = "before_prepare" />


                <platform name = "android">

                    <!-- <framework src = "com.google.android.gms:play-services-gcm:+" /> -->
                    <!-- <framework src = "com.google.android.gms:play-services-gcm:11.8.0" /> -->
                    <framework src = "com.google.android.gms:play-services-gcm:9.0.0" />

                    <!-- <framework src = "com.android.support:support-v4:+" /> -->
                    <!-- <framework src = "com.android.support:support-v4:11.8.0" /> -->
                    <framework src = "com.android.support:support-v4:9.0.0" />

                </platform>


        <plugin name = "phonegap-plugin-push" spec = "2.1.3">   
            <param name = "SENDER_ID" value = "x:xxxxx:android:xxxxxx" />
        </plugin> 

            <plugin name = "cordova-plugin-googleplus" source = "npm" spec = "5.3.0"></plugin>  

            <platform name = "android">   

                <resource-file src = "app/google-services.json" target = "app/google-services.json" />  

            </platform>      


            <content src = "index.html" />

</widget>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 764
1

Ответы 1

Учитывая, что вы установили Плагин push.

Вы разместили инициирующий вызов push-уведомления после события готовности устройства.

<!DOCTYPE html>
<html>
  <head>
    <title>Device Ready Example</title>

    <script type = "text/javascript" charset = "utf-8" src = "cordova.js"></script>
    <script type = "text/javascript" src = "push.js"></script> 

    // Wait for device API libraries to load
    //
    function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // device APIs are available
    //
    function onDeviceReady() {
        // Now safe to use device APIs
        var push = PushNotification.init({
            "android": {
              "senderID": "xxxxxxxxxx"
            },
        });


    push.on('registration', function(data) {
        alert('registration event: ' + data.registrationId);
        console.info('registration event: ' + 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
     }

    var parentElement = document.getElementById('registration');
    var listeningElement = parentElement.querySelector('.waiting');
    var receivedElement = parentElement.querySelector('.received');

    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');
  });
}

    </script>
  </head>
  <body onload = "onLoad()">
  </body>
</html>

После этого вы сможете увидеть идентификатор реестра в консоли.

редактировать 1: - Руководство по установке плагина Push

Как включить этот плагин в мой config.xml прямо сейчас делаю: <plugin name = "phonegap-plugin-push" spec = "2.1.3"> <param name = "SENDER_ID" value = "x: xxxxx: android : xxxxxx "/> </plugin>

sqlchild 22.05.2018 07:28

Вы должны добавить его из CLI, просто запустите эту команду "cordova plugin add phonegap-plugin-push"

Anuj.T 22.05.2018 07:39

@AnujT: Пожалуйста, дайте мне знать об установке плагина для Phonegap Build, я не использую студию Android для его создания.

sqlchild 22.05.2018 07:40

Хорошо, теперь я получаю регистрационный идентификатор, но приложение закрывается, когда я запускаю уведомление из своей консоли Firebase, в нем говорится, что приложение НЕОБХОДИМО ОСТАНОВИТЬСЯ.

sqlchild 22.05.2018 07:42

хорошо, это означает, что плагин успешно добавлен. теперь это определенная ошибка.

Anuj.T 22.05.2018 07:45

вам нужно проверить журналы в logcat, он даст стековую трассировку, почему приложение вылетает.

Anuj.T 22.05.2018 07:46

Но есть ли какой-нибудь логарифм для Phonegap Bulid?

sqlchild 22.05.2018 07:47

Сборка Phonegap поможет вам создать apk .., который вы установили в мобильном телефоне, теперь вам нужно подключить мобильный телефон к студии Android, чтобы проверить logcat, и вы найдете трассировку стека для сбоя.

Anuj.T 22.05.2018 07:49

Позвольте нам продолжить обсуждение в чате.

sqlchild 22.05.2018 08:14

Другие вопросы по теме