2

Я уже давно работаю с PhoneGap, и, поскольку мне действительно нужно было срочно в него проникнуть, без реального опыта веб-разработки, я мог бы сделать пара вещей неправильно с точки зрения отладки и строительства.Лучший способ отладки приложения PhoneGap с использованием CLI, в браузере

Прежде всего, я использую CLI PhoneGap для создания моих проектов. Я создаю свои мобильные приложения, используя службу PhoneGap Build, где я загружаю zipped версию моей www.

Чтобы отладить мои приложения, я использую команду phonegap serve в CLI, а затем я просто получаю доступ к URL-адресу и использую инструменты разработчика Chrome для проверки своих JS и HTML. Я иногда использую расширение Chrome, который называется Ripple, который обычно делает работу, но это, кажется, небольшая детская коляска (другие варианты?)

Недавно я добавил PushBots плагин в одном из моих приложений, и я получаю ссылку ошибки в консоли при отладке. Как я могу предотвратить эти типы ошибок?

Другая проблема, с которой я обычно сталкиваюсь, заключается в том, что я получаю исходную ошибку для cordova.js или cordova_plugins.js. Я понял, что файлы корневой javascript динамически добавляются в проект при построении, но это все еще раздражает консоль. Любой способ обойти это?

Я также добавил рамки пользовательского интерфейса Onsen поверх своего приложения PhoneGap, и, к примеру, он может немного беспокоиться о том, какие функции-экземпляры использовать, например, для обратной кнопки Android. (Я в настоящее время использовать index.js из моих сценариев папки для того, что я только что созданным вручную PhoneGap не создала его для меня.)

Моей обычная структура папок выглядит следующим образом:

www 
    > css - contains CSS for the onsen framework 
    > img - contains some images that are referenced in my code 
    > js - contains jquery, moment and other libraries that I use in my app 
    > lib - 
    > angular - contains angular.js 
    > onsen - contains the onsen framework 
    > bootstrap 
    > res - contains icons and splash screens 
    > scripts - recently added it myself, with an index.js file 
    > config.xml 
    > index.html 
    > main.html 
    > appController.js 
    > loginController.js 
    > ..... 

Ошибки с плагинами начинают происходить здесь. Это мой index.js в папке скриптов, которую я ссылаюсь в своем index.html сразу после ссылки cordova.js, которую я скопировал в корневую (www) папку, поэтому я не получаю ссылочные ошибки все время (я не получаю его больше для cordova.js, теперь я получаю это для cordova_plugins.js, поэтому я думаю, этот метод не очень хорошо)

(function() { 
"use strict"; 

myApp.run(['$rootScope', function($rootScope) { 
    document.addEventListener('deviceready', function() { 

     // Handle the Cordova pause and resume events 
     document.addEventListener('pause', onPause.bind(this), false); 
     document.addEventListener('resume', onResume.bind(this), false); 

     // TODO: Cordova has been loaded. Perform any initialization that requires Cordova here. 
     document.addEventListener("backbutton", onBackKeyDown, false); 
     window.plugins.PushbotsPlugin.initialize("--------", {"android":{"sender_id":"-------"}}); 

     // First time registration 
     // This will be called on token registration/refresh with Android and with every runtime with iOS 
     window.plugins.PushbotsPlugin.on("registered", function(token){ 
      console.log("Registration Id:" + token); 
     }); 

     window.plugins.PushbotsPlugin.getRegistrationId(function(token){ 
      alert("Registration Id:" + token); 
      console.log("Registration Id:" + token); 
     }); 

     // Should be called once app receive the notification 
     window.plugins.PushbotsPlugin.on("notification:received", function(data){ 
      $rootScope.$emit('onNotificationWhileOpen', data); 
      console.log("received:" + JSON.stringify(data)); 
     }); 

     // Should be called once the notification is clicked 
     window.plugins.PushbotsPlugin.on("notification:clicked", function(data){ 
      //alert("clicked:" + JSON.stringify(data)); 
      $rootScope.$emit('onNotificationClick', data); 
      console.log("clicked:" + JSON.stringify(data)); 
     }); 

     window.plugins.PushbotsPlugin.resetBadge(); 

    }, false); 
}]); 

...All the necessary functions for the callbacks go here... 
})(); 

Плагины добавляют в PhoneGap построить структуру, поэтому я просто должен указать их в файле config.xml. Я думаю, именно поэтому у меня проблемы с этим при отладке на ПК, но есть ли способ обойти это?

Я сделал полный беспорядок из моего проекта, добавив ссылку cordova.js вручную? Действительно ли это необходимо, когда у меня есть система Onsen?

LE: Просто хочу, чтобы я дал как можно больше информации. Это, как я загрузить мои файлы Javascript в мои HTML файлы:

<script src="js/onsenui.js"></script> 
<script src="js/angular/angular.js"></script> 
<script src="js/angular-onsenui.js"></script> 
<script src="js/jquery-3.1.0.js"></script> 
<script src="js/jquery-ui.js"></script> 
<script src="js/moment.min.js"></script> 
<script src="js/jquery.mobile-1.4.5.min.js"></script> 

<!--CONTROLLERS--> 
<script src="app.js"></script> 
<script src="appController.js"></script> 

<script src="helpers.js"></script> 

<script src="cordova.js"></script> 
<script src="scripts/index.js"></script> 

ответ

0

Одна вещь, которую я рекомендовал бы переместить ссылку на cordova.js дальше, прежде чем ваш код потенциально может сделать вызов к API Кордова.Как так:

<!--CONTROLLERS--> 
<script src="cordova.js"></script> 
<script src="js/onsenui.js"></script> 
<script src="js/angular/angular.js"></script> 
<script src="js/angular-onsenui.js"></script> 
<script src="js/jquery-3.1.0.js"></script> 
<script src="js/jquery-ui.js"></script> 
<script src="js/moment.min.js"></script> 
<script src="js/jquery.mobile-1.4.5.min.js"></script> 

<!--CONTROLLERS--> 
<script src="app.js"></script> 
<script src="appController.js"></script> 

<script src="helpers.js"></script> 
Смежные вопросы