Отличия вебвью от браузера

Вебвью (WebView) — это компонент, используемый в мобильных приложениях для отображения веб-страниц.

Компоненты WebView разрабатываются различными организациями, в зависимости от платформы, на которой они используются.

ВАЖНО: нет разработчиков, которые используют свой собственный движок вебвью, так как компоненты вебвью разрабатываются Google или Apple, поэтому в любом вебвью приложение от любого продавца, будет ОДИНАКОВЫЙ компонент вебвью. Отличие приложений будет лишь в реализации некоторых функций и разумеется цене.

В стоимость нашего вебвью уже включены:

-Пуш уведомления

-Админ панель (web+win)

-Дополненный функционал улучшающий работу приложения

-aab + apk файлы

-передача push токена на сервер

-смена ссылки

-изменение splash screen

-нижнее меню

-смена цветовых настроек

И другие функции

Кто разрабатывает компонент вебвью в приложениях?

Android WebView

  • Разработчик: Google
  • Описание: Android WebView — это системный компонент, который позволяет приложениям Android отображать веб-контент. Он основан на движке Blink и V8, который также используется в браузере Google Chrome.
  • Обновления: Вебвью на Android обновляется через Google Play, что позволяет получать новые функции и исправления безопасности независимо от обновлений операционной системы.

iOS WebView

  • Разработчик: Apple
  • Описание: iOS использует два основных компонента для отображения веб-контента: UIWebView (устаревший) и WKWebView (современный и предпочтительный). Оба компонента основаны на движке WebKit, который также используется в браузере Safari.
  • Обновления: Обновления вебвью приходят вместе с обновлениями iOS, так как они являются частью операционной системы.

Таким образом, разработка компонентов WebView осуществляется крупными технологическими компаниями, такими как Google, Apple и Microsoft, которые обеспечивают поддержку и обновления этих компонентов на соответствующих платформах.

Так как вебвью основаны на браузерных движках, то как правило, работа простого сайта в вебвью на 100% соответствует работе в браузере. Различия могут стать заметны, на технологически сложных сайтах, которые используют некоторы html5 API (например nfc)

Регламент работы вебвью приложения

Инициализация:

Разработчик настраивает начальные параметры вебвью (URL страницы)

Загрузка контента:

Вебвью может загружать контент из интернета по указанному URL.

Что реализовано в нашем вебвью приложении

Мы постарались приблизить работу такого приложения как можно ближе к работе браузера, чтобы обеспечить корректное и незаметное для пользователя взаимодействие со страницей.

Так же нами были внедрены панель администратора с богатым функционалом, которая позволяет управлять различными настройками приложения и включать\выключать некоторые нативные элементы (нижнее меню, цветовые настройки и прочее, подробнее читайте в документации по админ панели)

Отличия вебвью от браузера в техническом плане

Вебвью предоставляет не весь набор функций  браузера.

Производительность:

Вебвью обычно менее производительное по сравнению с современными браузерами, так как не использует всех оптимизаций, доступных в браузерах. И как было рассмотрено выше, вебвью разрабатывается Google поэтому нет каких либо «специальных» быстрых движков вебвью. Во всех приложениях от различных разработчиков будет стоять один и тот же компонент! 

Данная проблема была актуальна на старых телефонах – Android5,6 , во времена которых, процессоры были не столь производительны.  Учитываю то, что на момент написания материала (июнь 2024 год) бюджетный смартфон стоимостью в 10.000р оснащен 8-ми ядерным процессором с производительностью сравнимой с процессором G-99, то данный пункт можно считать не актуальным.

Обновления:

Вебвью может зависеть от версии операционной системы и обновляется вместе с ней.

WebView, несмотря на свою мощность, имеет ограничения по сравнению с полноценными браузерами. Некоторые из возможностей и API, доступных в современных браузерах, могут отсутствовать или быть ограниченными в WebView. Вот основные из них:

Service Workers

  • Отсутствие полной поддержки: Во многих реализациях WebView отсутствует поддержка Service Workers. Service Workers необходимы для создания прогрессивных веб-приложений (PWA) и обеспечения офлайн-режима, кэширования ресурсов и фоновой синхронизации.
  • Ограниченные возможности: Даже если поддержка Service Workers присутствует, их функциональность может быть ограничена по сравнению с полноценными

 

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

Push-уведомления

  • Отсутствие поддержки: В большинстве реализаций WebView нет поддержки пуш-уведомлений через веб-стандарты. Для реализации пуш-уведомлений обычно требуется использовать нативные методы и API платформы (Firebase Cloud Messaging для Android или APNs для iOS).
  • Взаимодействие с нативными пуш-уведомлениями: Для интеграции пуш-уведомлений требуется взаимодействие между JavaScript и нативным кодом, что увеличивает сложность разработки.

Это достаточно значимы пункт. Многие люди используют браузерные уведомления. Они не будет работать в вебвью. Для решения этой проблемы придуманы некоторые методы, в частности передача пуш токена на сервер. Но, для этого потребуется доработка сайта.

Добится 100% работы пуш уведомлений можно сделав не вебвью приложение, а ваш персональный браузер. Но при запуске такого приложения будет написано «Работает в Chrome».  Многих не устраивает такая надпись и большинство заказчиков предпочитает использовать чистое вебвью приложение!

APIs для доступа к устройствам

API Bluetooth и NFC: Веб-стандарты для работы с Bluetooth и NFC могут быть недоступны или ограничены в WebView.

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

Загрузка файлов

  • Отсутствие нативного диалога скачивания: WebView не предоставляет нативного диалога скачивания файлов, как это делают полноценные браузеры. Разработчикам приходится реализовывать собственные механизмы для обработки скачивания файлов.
  • Дополнительная обработка JavaScript: Для скачивания файлов, созданных с использованием blob:, может потребоваться дополнительная обработка JavaScript и взаимодействие с нативным кодом.

В нашем вебвью реализована возможность загрузки\скачивания файлов.

Работа в фоне.

При прослушивании аудио в фоне (когда закрыт браузер), оно будет воспроизводится до конца. Данная функция может не работать в вебвью. Если, вы делаете приложение для радоистанции, то возможно оно будет работать не совсем так, как планировалось.

Для частичного решения этой проблемы запросите версию вебвью с работой в фоне.

Для полного решения используйте сборку «браузер»

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

Что не реализовано:

Загрузка по протоколу blob. За всю 5 летнюю историю и более чем 3000 тысячи сделанных приложений мы лишь дважды встрепли сайты на которых фалы вместо файлов скачиваются по данному протоколу. На 99.9999% сайтов файлы хранятся на сервере. Поэтому, мы не видим смысла во внедрении функционала для решения данной ситуации. Но, хотим отметить что данную проблемы можно решить на стороне сайт через JS предварительно сформировав из Blob обычный файл.

Write a Comment

Ваш адрес email не будет опубликован.