Обслуживание другого пользовательского интерфейса Progressive Web App для iOS и Android - PullRequest
1 голос
/ 18 апреля 2019

Поскольку PWA получают лучшую поддержку в iOS и, похоже, становятся интересной альтернативой другим подходам к разработке мобильных приложений, мне было интересно, можно ли использовать отдельный пользовательский интерфейс, например, App Shell, для iOS и Android.

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

Итак, чтобы иметь хорошую реализацию PWA, нужно было бы использовать отдельный интерфейс для iOS и Android.Я не могу найти ресурс о том, как это сделать, есть ли у кого-нибудь указания о том, как реализовать эту идею?

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

Мне было интересно, возможно ли обслуживать отдельный пользовательский интерфейс

Есть несколько основ / подходов, которые пытаются достичь этого, например: Ionic Framework.

Ссылка:

Ponic Ionic 3, Brew: Craft Beer App , Android:

enter image description here

iOS:

enter image description here

2 голосов
/ 19 апреля 2019

У вас есть два варианта:

  1. Сборка двух версий приложения.Проверьте user-agent на сервере.В зависимости от агента пользователя, заставить HTTP-сервер возвращать разные версии приложения.Это вполне выполнимо и на самом деле происходит в дикой природе.Например, домашняя страница Google отличается в зависимости от того, загружаете ли вы страницу в Firefox / Chrome / Safari.В этом случае вам необходим достаточный контроль над сервером HTTP.

  2. Создайте одну версию приложения, включающую оба интерфейса пользователя.Затем покажите другую версию приложения в зависимости от агента пользователя, когда приложение запущено.

Второй сценарий делает пользовательский код загрузки неиспользованным.

Редактировать: фактически второй сценарий не заставляет пользователя загружать неиспользуемый код, если вы используете отложенную загрузку/ разделение кода.

...