Я пробовал все в течение последних двух дней, чтобы решить эту проблему. Я здоров и по-настоящему тупой. Возможно, кто-то с большим знанием, чем я могу пролить свет на проблему:
В принципе, я создаю приложение в AngularJS с целью создания приложений Android и iOS от него с помощью Cordova. Я должен указать, что я использую cordova-cli для Linux и ngCordova (обертка вокруг плагинов). Я НЕ использую Ionic Framework.
Мое приложение отлично работает в Chrome. Я отлично выполнил руководство по установке ngCordova: http://ngcordova.com/docs/install/
Я использовал беседу для установки. Затем включил следующее в index.html моего проекта веб-приложения (а не проект Кордовы):
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
Это не сработало. Я подумал, может быть, потому, что ng-cordova.js зашел в мой каталог компонентов bower. Поэтому я изменил этот тег скрипта на:
bower_components/ngCordova/dist/ng-cordova.js
Когда я перехожу в каталог проекта cordova и настраиваю платформы, плагины и т.д.... и запускаю:
cordova build android
с последующим
cordova run android
Приложение работает на моем устройстве (Nexus 5). Я использую chrome://проверяю, что происходит, когда я нажимаю кнопку, которая должна использовать плагин для композитора электронной почты: я получаю ошибку, не определенную в кордове.
Я вошел в контроллер и поместил это в
console.log($cordovaEmailComposer);
Я могу проверить это в chrome://insepct, и у него есть все правильные функции и т.д., Так что ng-cordova.js работает нормально (вот где фабрика для плагина).
Я на 99% уверен, что проблема в том, что где-то вдоль линии cordova.js теряется. Когда я иду в проект cordova в ProjectName/www/index.html, тег для cordova.js прокомментирован.
То же самое в файле platform/android/assets/www/index.html.
Я проследил его, и то же самое верно в файле WebAppProject/dist/index.html. Он прокомментировал это. Поэтому кажется, что когда я запускаю grunt, сборка cordova.js удаляется. Я подумал, может быть, потому, что cordova.js не был в WebAppProject, поэтому я привел его в корневой каталог (то же самое место, что и index.html), и это все равно произошло.
Может ли кто-нибудь объяснить, как правильно заставить это работать? Я полностью в недоумении. Я пробовал миллион различных способов включения cordova.js. Я даже вручную раскомментировал его в файле cordovaproject/www/index.html. Приложение создается, но падает при открытии (белый экран затем умирает), предлагая отсутствующий скрипт (несмотря на то, что cordova.js тоже находится в этом каталоге...).
Это процесс сборки? Или я полностью настраиваю проект ngCordova неправильно, не понимая... Я бы опубликовал код, но я на 99% уверен, что проблема связана с cordova.js или тем, как проект строится на сборке grunt или создании cordova.
Любая помощь приветствуется. :)
Cheers, D
Обязательно включите ngCordova до cordova.js и после angular.js.
<script src="/path/to/angular.js"></script>
<script src="/path/to/ng-cordova.js"></script>
<script src="/path/to/cordova.js"></script>