Я пытаюсь понять, как все работает, но есть некоторые вопросы по этой теме.Разработка гибридных приложений (PhoneGap, Cordova, Ionic) под капотом
Я объясню, как я это понимаю.
Прежде всего давайте начнем с Cordova
это платформа, которая переводит JS
, CSS
, HTML
файлы в родное приложение. Но остановить это не совсем так.
Действительно, он просто помещает все html, css-файлы в папку с ресурсами только для этой платформы, создает пользовательский WebView
, специфичный для платформы, настраивает его, привязывает к нему все необходимые плагины и устанавливает открытую страницу по умолчанию.
Все остальное - это просто веб-разработка, за исключением методов крюков, предоставляемых плагинами платформ, которые помогают получить доступ к родным функциям, таким как GPS
, Camera
через java-вызовы от WebView
.
Таким образом, все остальное зависит от конкретного родного веб-ядра для обработки и поддержки таких функций, как , CSS3
... Если, например, WebKit
реализация конкретной версии для Android не поддерживает такие функции, вы не можете что-то сделать, чтобы заставить ее работать а не обновлять ядро низкого уровня Android.
У меня есть следующие вопросы.
Что представляют собой платформы, как
Onsen UI
,Ionics
,Sencha
... Официальные сайты говорятHTML5 Hybrid Mobile App Framework and UI Components for PhoneGap & Cordova
. Почему ключевое словоHTML5
используется повсеместно, это просто особенность родного ядра браузера не более, если браузер не поддерживает все эти платформы и рамки бесполезны.Что такое специальная платформа, она должна быть
Mobile-hybrid specific
. Я понимаю, чтоPhoneGAp
иCordova
предоставляют плагины и некоторые прокси для связи с родным API, но в случаеUI frameworks
это всего лишь css, js, html-файлы? Почему я не могу использовать их в браузере ПК по умолчанию?Какова цель установки таких платформ и фреймворков, например,
npm
, напримерnpm install onsenui
, почему я не могу просто скопировать файлы js в каталог проекта? Я понимаю, что некоторые платформы используютcss-preprocessors
для компиляции псевдо-CSS-файлов в css-файлы, но в случае отсутствия таких инструментов.
Скажите, пожалуйста, где я ошибаюсь и отвечаю на мои вопросы. Был бы благодарен за любую помощь.
Спасибо за отличный ответ. У меня есть только один вопрос. Вы упомянули, что некоторые фреймворки предоставляют специальные компоненты UI (frameworks), но во всем все написано с использованием 'css',' js' и 'html' под капотом. Все популярные фреймворки, такие как 'Angular',' ExtJS' и 'React', построены с использованием простого старого JavaScrip (Ecmascript)'. Это связано с тем, что 'js' поддерживает метапрограммирование, но все рассмотренные там есть только три языка (строительные блоки) в Интернете:' css', 'js' и' html'. Все остальное - просто сахар (например, препроцессоры), правильно? – ketazafor
yep в значительной степени. –