Приложение телефонной связи с генератором угловых полных стеков
Задача состоит в том, чтобы запустить приложение, созданное yeoman с помощью angular-fullstack-generator, с phonegap.
Для всех, кто интересуется, это самые многообещающие учебники, которые я нашел для этого:
Начало работы с разработкой мобильных приложений с PhoneGap + Yeoman + AngularJS + Ionic
Краткое руководство по PhoneGap+AngularJS от Холли Шински. (части пользовательского интерфейса работают, но функциональность - при базовой настройке)
Создание приложений PhoneGap с AngularJS Брайаном Фордом. (кажется, что кодовая база изменилась в некоторых моментах, так что я действительно не заставил ее работать)
Итак, первое руководство привело меня к рабочему решению с угловым генератором от йоменской команды. Но теперь с генератором angular-fullstack я столкнулся со следующей проблемой. Консоль говорит мне:
Failed to load resource file:///app/45eec174.app.css
Failed to load resource file:///app/f9250ffb.vendor.js
Failed to load resource file:///app/90992454.app.js
Failed to load resource file://www.google-analytics.com/analytics.js
Так что мой подозреваемый до сих пор <base href="/">
тег генерируется в заголовке index.html
, Похоже на этот SO-вопрос. Просто удалить это не вариант.
Теперь мое понимание ворчания ограничено, но почему оно работает заданным образом с grunt serve
?
И как бы это исправить, чтобы заставить его работать с PhoneGap?
2 ответа
Я в той же миссии. Но все же заставить его работать. Однако в качестве первого шага мне удалось запустить пользовательский интерфейс в качестве отдельного приложения.
Ваше предположение верно,
Этот базовый тег используется angular во всем приложении при загрузке шаблонов. В то же время, в том числе базовый тег не найдет ресурсы, включенные в index.html. Я сделал следующее
- Удален базовый тег из index.html
В угловом конфиге сделали следующее
$locationProvider.html5Mode({ enabled: true, requireBase: false });
шаг #2, помогает angular работать в html5mode без использования базового тега.
Измените все вызовы бэкэнд-службы в форме http://backendurl.com:port/api/service
не обслуживать сокет-клиент с сервера
установить socket-io-client в качестве компонента bower на стороне клиента
подключить сокет-клиент с URL-адресом бэкэнда
построить полный стек для dist (grunt build:dist)
создайте символическую ссылку для \dist\public to cordovaapppath\www
приложение Cordova build (сборка Cordova Android)
вы сделали. Мне удалось создать приложение с помощью PhoneGap. Я создал проект GitHub, расширяющийся от Angular fullstack. https://github.com/kannach/AFSPhonegap
пожалуйста, попробуйте и внести свой вклад.
На данный момент, после того как вы все сделаете из руководства @Chandru, вы должны сделать еще одну вещь, если вы используете версию Generator Angular Fullstack после версии 4.0.0 Beta 2 Webpack:
В webpack.make.js измените строку:
publicPath: BUILD || DEV || E2E ? '/' : `http://localhost:${8080}/`,
в
publicPath: BUILD || DEV || E2E ? '' : `http://localhost:${8080}/`,