Добавление серверной части в ионное приложение - от начинающих до среднего

Это продолжение нашей Части 1.

Добавление JS-бэкэнда

Любое логическое приложение в конечном итоге получит и сохранит данные на сервере. Это может быть облегченная база данных, встроенная в приложение, или в REST Api. В нашем случае мы получаем данные только от сервиса через REST API. Для нашего приложения мы используем apis данных о качестве воздуха в реальном времени из http://aqicn.org/json-api/doc/#api-Geolocalized_Feed-GetHereFeed.

Чтобы взаимодействовать с HTTP API, нам нужно добавить HTTP-модуль в наше приложение Ionic / Angular.

Добавьте приведенный ниже оператор импорта в app.module.ts и добавьте HttpModule в свойство imports, чтобы загрузить его.

импортировать {HttpModule} из ‘ @ angular / http ’;

Добавьте следующие два импорта в home.ts. Импорт обещания используется для преобразования наших вызовов api в обещания, которые пригодятся позже.

импортировать {Http} из ‘ @ angular / http ’;
импортировать ‘rxjs / add / operator / toPromise’;

Окончательный код для home.ts теперь должен выглядеть следующим образом. Подводя итог, вот что мы сделали:

  1. Сохраните ссылку на объекты Http и LoadingController в нашем классе HomePage с помощью функции конструктора.
  2. Создан новый метод перезагрузки, в котором мы используем объект http для выполнения вызова REST к нашему API индекса качества воздуха. В настоящее время используется демонстрационный токен, который не возвращает динамические данные. Поэтому, пожалуйста, создайте свой собственный токен, следуя документации api, и замените демонстрационный токен своим.
  3. Вызовы http возвращают обещание, и при успешном выполнении этого обещания мы сохранили данные индекса качества воздуха (aqi) в переменной имен наших классов aqi.

Связывание данных в HTML

Связывание данных с HTML происходит с помощью привязки данных Angular. Я не буду здесь рассказывать об этом, но еще раз резюмирую, это способ, с помощью которого представления автоматически меняются, когда происходит изменение данных в JS.

Angular имеет особое соглашение о привязке данных, и наиболее распространенным является использование фигурных скобок. В нашем случае у нас есть переменная aqi, определенная в нашем JS-имени home.ts. В этом файле приведенный ниже код означает, что любые данные, которые есть в этом классе, могут использоваться в home.html.

ПРИМЕЧАНИЕ. Любая новая переменная, которую вы определяете в своем JS, должна иметь связанный с ней тип в соответствии с соглашениями машинописного текста. На данный момент, поскольку мы объявляем переменную aqi, машинописный текст выдает ошибку компиляции с просьбой указать тип. В качестве общей меры просто добавьте к этой переменной тип any.

@Component ({
selector: 'page-home',
templateUrl: 'home.html'
})
экспорт класса HomePage {
аки: любой; // соглашение машинописного текста
конструктор (общедоступный загрузчик: LoadingController, общедоступный navCtrl: NavController, общедоступный http: Http) {
this.http = http;
this.loader = loader;
this.aqi = {данные: {}};
this.reload ();
}

Поэтому, если мы хотим использовать наши данные aqi выше в HTML, просто сделайте это в нашем html

{{aqi.data}}

и так далее, вы можете расширить этот стиль, чтобы ссылаться на любое свойство в графе объектов json.

Это подводит нас к окончательному HTML, который теперь выглядит вот так.

Теперь, если все идет хорошо и тоже выполняется ionic serve, ваше приложение должно появиться в браузере.

Шаг 4 - Мобильное приложение для Android

Добавление платформы Android

Пришло время преобразовать наше веб-приложение в мобильное приложение. Для этого урока мы создадим приложение для Android. Убедитесь, что в вашей системе установлен Android. Будет много руководств, которые помогут вам пройти этот шаг, поэтому я пропущу этот шаг.

Чтобы добавить платформу Android, выполните следующую команду:

платформа ionic cordova добавить андроид

Вышеупомянутый шаг добавит в ваш каталог android, заставки и значки.

Сборка Android APK

Теперь пора создать apk из нашего веб-приложения. Запустите команду ниже, и она должна сгенерировать apk в папку ‹project_dir› /platforms/android/build/outputs/apk/android-debug.apk

ионная кордова сборка Android

Некоторые телефоны не позволяют передавать apk с такими именами, поэтому вы можете просто переименовать его, перенести на свой телефон Android и установить. Если все пойдет хорошо, теперь у вас есть первое полнофункциональное гибридное приложение! : D

Настройки имени и версии приложения

Имя и версию вашего приложения можно изменить из файла config.xml, находящегося в корневом каталоге вашего проекта.

‹Widget id =” io.ionic.starter ”version =” 0.0.1 ' xmlns = » http://www.w3.org/ns/widgets ' xmlns: cdv =» http://cordova.apache.org/ns/1.0 '›
‹name› MyApp ‹/name›

Настройки значков и заставок

Чтобы настроить значок приложения и экран-заставку, перейдите в папку ресурсов в корневом каталоге проекта. Просто замените icon.png и splash.png своими собственными файлами. Для меня минимальные размеры изображений, которые работали, были: 512x512 для значка и 1920x1920 для экрана-заставки. После этого выполните следующую команду, чтобы сгенерировать все значки и заставки для разных типов устройств.

ионная кордова ресурсы

Отладка APK и изменения кода HOT

Для заключительных шагов вам может потребоваться внести некоторые изменения в свой код и создать apk и переносить его на свой телефон каждый раз, когда это вас раздражает. Чтобы решить эту проблему, просто подключите телефон к компьютеру и разрешите удаленную отладку и режим передачи файлов.

Нет, вместо ionic serve выполните следующую команду

ionic cordova запустить android - livereload

PS: двойной дефис перед загрузкой

Это должно вызвать приложение на вашем телефоне, и когда вы измените код на своем компьютере, изменения отразятся в реальном времени на вашем apk.

В дополнение к этому, еще один продвинутый способ отладки вашего JS-кода - это просмотреть приведенную ниже ссылку в вашем Chrome:

chrome: // inspect / # устройств

Это покажет вам подключенный телефон и запущенный apk. Убедитесь, что ваш apk запущен, когда вы это сделаете.

Шаг 5 - Окончательный запуск в производственный магазин PlayStore

Производительность APK и время начальной загрузки

К настоящему времени вы, должно быть, поняли, что нашему приложению требуется немного времени для первоначального запуска. Чтобы исправить это, мы создадим наш apk с производственным флагом, который сообщает ionic о необходимости оптимизации, такой как компиляция AOT и других интересных вещей (мне еще предстоит углубиться в эту черную магию!). Выполните приведенную ниже команду, чтобы создать приложение для производства и задать ему скорость запуска.

ionic cordova build android - прод

PS: после prod стоит двойной дефис

Сверните его в Playstore / Appstore

Android требует, чтобы вы подписали apk своим сертификатом безопасности перед развертыванием любого приложения. Чтобы сделать этот шаг, сначала нам нужно создать файл хранилища ключей. Итак, в системе, где установлена ​​java, выполните следующую команду

keytool -genkey -v -keystore release.keystore -alias пример -keyalg RSA -keysize 2048 -validity 10000

Он задаст вам несколько вопросов и пароль для установки. Убедитесь, что вы помните пароль. Результатом этого шага будет файл хранилища ключей с тем же именем, которое вы указали в команде. Скопируйте этот файл release.keystore и поместите его в папку ‹project› / platform / android.

В той же папке создайте еще один файл с именем release-signing.properties и поместите в него указанные ниже значения.

storeFile = ‹имя файла хранилища ключей с расширением›
storeType = jks
keyAlias ​​= ‹псевдоним, который вы указали на шаге выше›
keyPassword = ‹пароль, который вы указали на шаге выше›
storePassword = ‹Пароль, который вы указали на шаге выше›

Теперь, наконец, запустите следующие две команды, чтобы получить ваш производственный apk

ionic cordova build android - прод

Cordova build android -выпуск

Если все пойдет хорошо, вы получите файл с именем android-release.apk в папке ‹project_dir› / platform / android / build / output / apk /.

Этот выпуск apk можно напрямую загрузить в свою учетную запись игрового магазина !.

Полный код этого руководства доступен в моем репозитории на github:

Https://github.com/apuravchauhan/air-pollution-tutorial