Инструкция

Как веб-приложение встраивается в оболочку

Веб-приложение представлено в формате в веб-контейнера, который запускается как приложение Ubuntu в оболочке Ubuntu/Unity.

Рассмотрим поближе:

На самом внутреннем уровне находится веб-сайт, который разработчик идентифицирует по URL. Сайт открывается и работает в веб-браузере Oxide. Oxide - это веб-просмотр на основе ядра Blink/Chrome, адаптированный для Ubuntu. Веб-приложение Oxide запускается и отображается в веб-контейнере. Контейнер webapp - это интегрированная для работы с оболочкой среда исполняемого приложения Ubuntu/Unity.

Запуск

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

webapp-container URL

Например::

webapp-container http://www.ubuntu.com

Эта простая форма работает, но почти каждое веб-приложение также использует другие функции. Например, ограничение URL-адресов шаблонами URL-адресов, как описано ниже.

Пользовательский интерфейс

Веб-приложение обычно разворачивается на все рабочее пространство на экране устройства без необходимости использования элементов управления пользовательского интерфейса стандартных браузеров.

В некоторых случаях подходят некоторые элементы навигации, например кнопки «Назад» и «Вперед» или адресная строка URL. Они добавляются в качестве аргументов командной строки:

  • --enable-back-forward. Включение отображение кнопок «назад» и «вперед» на панели инструментов (в нижней части окна веб-приложения)

  • --enable-addressbar. Включение отображение адресной строки (внизу окна веб-приложения)

URL-шаблоны

Разработчики веб-приложений часто хотят ограничить доступ к сайту-источнику. То есть разработчик хочет контролировать URL-адреса, которые можно открыть в веб-приложении (все остальные URL-адреса открываются в браузере). Это делается с помощью URL-шаблонов в командной строке через ключи для запуска webapp.

Однако многие веб-приложения используют страницы, размещенные на нескольких сайтах или внешних ресурсах.

Ограничение или доступ к указанным внешним URL-адресам реализуется с помощью шаблонов URL-адресов, предоставляемых в качестве аргументов во время запуска. Давайте посмотрим поближе.

По умолчанию - нет контейнера

По умолчанию, URL отсутствует. Предположим, Вы запускаете веб-приложение без каких-либо шаблонов, и в нём есть только URL-адрес, например::

webapp-container http://www.ubuntu.com

Пользователь может перейти на любой сайт без ограничений. Например, если нажать на кнопку «Developer» ( «режим разработчика») вверху, то откроется сайт developer.ubuntu.com.

Примечание: можно увидеть URL-адрес, если включить адресную строку командой --enable-addressbar.

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

Часто хочется ограничить активность пользователя только одним сайтом. Например, веб-сайт www.ubuntu.com не пускает пользователей своего веб-приложения дальше домена ubuntu.com. Это можно сделать, если добавить шаблонURL-адреса с подстановочными символами в команду запуска, как показано ниже ::

webapp-container --webappUrlPatterns=http://www.ubuntu.com/* http://www.ubuntu.com
--webappUrlPatterns= указывает на то, что шаблон следующий

http://www.ubuntu.com/* - в этом случае звездочка - это подстановочный знак, после него может идти любая последовательность символов в URL-адресе

С помощью этой команды и шаблона URL пользователь может перейти и открыть в веб-приложении любой URL-адрес, начинающийся с http://www.ubuntu.com/. Например, клик по кнопке «Телефон» (http://www.ubuntu.com/phone) или «Планшет» (http://www.ubuntu.com/tablet) на баннере откроет соответствующие страницы в веб-приложении. Но, если кликнуть на клавишу «Разработчик», то страничка откроется в браузере.

Примечание: необходимо полностью указать имя домена. Например, http://www.ubuntu.com, а не www.ubuntu.com. Если не будет указан субдомен, это приведет к неправильному URL-адресу и, следовательно, к проблемам безопасности.

Более сложные шаблоны

Может возникнуть необходимость ограничить доступ к некоторым разделам сайта из веб-приложения. Это легко делается с помощью подстановочных шаблонов (wildcards). Ссылки на другие под-домены открываются в браузере. Например, вот как получить доступ к страницам www.ubuntu.com/desktop/features и www.ubuntu.com/phone/features, но при этом запретить открывать страницы www.ubuntu.com/desktop или www.ubuntu.com/phone:

webapp-container --webappUrlPatterns=http://www.ubuntu.com/*/features http://www.ubuntu.com

Использование нескольких шаблонов одновременно

Можно использовать несколько шаблонов, разделяя их запятой. Например, в этом примере разрешим доступ только к страницам www.ubuntu.com/desktop/features и www.ubuntu.com/phone/features::

webapp-container --webappUrlPatterns=http://www.ubuntu.com/desktop/features,http://www.ubuntu.com/phone/features  http://www.ubuntu.com

Примечание: использование нескольких шаблонов обычно необходимо, чтобы корректно работала необходимая политика ограничения доступа к ресурсам.

Добавление определенного под-домена

У многих URL-адресов имеется один или несколько поддоменов. (Например, в дальнейших примерах «developer» - это поддомен сайта developer.ubuntu.com). Можно разрешить доступ к одному поддомену (и всем его подстраницам) с помощью шаблона::

--webappUrlPatterns=http://developer.ubuntu.com/*

Обычно требуется, чтобы пользователь легко мог вернуться к начальному URL-адресу. Например, если начальный URL-адрес http://www.ubuntu.com, то нужен второй шаблон::

--webappUrlPatterns=http://developer.ubuntu.com/*,http://www.ubuntu.com/*

Теперь объединим всё вместе - со странички http://www.ubuntu.com можно перейти на http://developer.ubuntu.com и вернуться обратно::

webapp-container --webappUrlPatterns=http://developer.ubuntu.com/*,http://www.ubuntu.com/*  http://www.ubuntu.com

Добавление под-доменов с помощью шаблона

В некоторых URL содержится под-доменов. Например, в состав www.ubuntu.com входят также ресурсы design.ubuntu.com, developer.ubuntu.com и другие. Можно разрешить доступ ко всем поддоменам с помощью специального символа-шаблона в строке с под-доменами::

webapp-container --webappUrlPatterns=http://*.ubuntu.com/*  http://www.ubuntu.com

Примечание. Звездочка (*) в строке субдомена соответствует любому допустимому имени под-домена. Этого символа достаточно, чтобы разрешить просмотр любого под-домена и страниц, в том числе вернуться к начальному URL (http://www.ubuntu.com).

Добавление https

Иногда некоторые странички сайтов могут работать только по протоколу https. Вот как можно разрешить https и https в веб-приложении для сайта www.launchpad.net (и всем его под-доменам)::

webapp-container --webappUrlPatterns=https?://http://www.launchpad.net/* http://www.launchpad.net

Примечание: для чего нужен знак вопроса после https? Это значит, что предыдущий символ («s») является необязательным. Если нужно использовать только https, знак вопроса указывать не нужно.

Аргументы командной строки

У контейнера webapp есть множество опций для точной настройки различных веб-приложений.

Все команды можно посмотреть в справке::

webapp-container --help

Примечание. К версии Ubuntu с режимом конвергентности применяются только следующие параметры:

--fullscreen Display full screen
--inspector[=PORT] Run a remote inspector on a specified port or 9221 as the default port
--app-id=APP_ID Run the application with a specific APP_ID
--name=NAME Display name of the webapp, shown in the splash screen
--icon=PATH Icon to be shown in the splash screen. PATH can be an absolute or path relative to CWD
--webappUrlPatterns=URL_PATTERNS List of comma-separated url patterns (wildcard based) that the webapp is allowed to navigate to
--accountProvider=PROVIDER_NAME Online account provider for the application if the application is to reuse a local account.
--accountSwitcher Enable switching between different Online Accounts identities
--store-session-cookies Store session cookies on disk
--enable-media-hub-audio Enable media-hub for audio playback
--user-agent-string=USER_AGENT Overrides the default User Agent with the provided one.

Параметры браузера Chrome (браузер Chrome по умолчанию отключен)::

--enable-back-forward Enable the display of the back and forward buttons (implies --enable-addressbar)
--enable-addressbar Enable the display of a minimal chrome (favicon and title)

Примечание. Другие доступные параметры относятся только к веб-приложениям для настольных компьютеров. Не рекомендуем их использовать.

Изменение строки User-Agent

Некоторые веб-сайты проверяют строку-идентификатора веб-браузер, так называемый «User-Agent», чтобы включить определенные функции или адаптировать дизайн. Иногда требуется изменить User-Agent, отправляемый веб-приложением.

Из командной строки это можно сделать с помощью следующей команды::

--user-agent-string='<string>' Replaces the default user-agent string by the string specified as a parameter

Хранение данных браузера

Работа с веб-приложением ограничивается доступом к данным определенного браузера. То есть веб-приложения не имеют доступа к данным из любого другого установленного браузера, таким как история, файлы cookie и т. д. Другие браузеры в системе не имеют доступа к данным веб-приложения.

Хранилище данных

W3C позволяет приложениям использовать локальное хранилище, а Oxide/Webapp-контейнер поддерживает основные стандарты: LocalStorage, IndexedDB, WebSQL.