Web Intents — средство общения приложений

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

Проблема взаимодействия веб-приложений между собой стала особенно актуальна с развитием глобальных социальных сетей и сервисов. Стандартный функционал какого-либо портала может включать, например, возможность отправки сообщений в Twitter, авторизацию через Facebook, интеграцию Яндекс-маркет и возможность оплаты услуг через систему Деньги Online. Все эти и подобные возможности присутствуют в современном вебе. Они реализуются посредством разнообразных модулей интеграции, которые с той или иной степенью успешности делают свою работу, но совершенно не стандартизированы, а главное — намертво привязаны к конкретным приложениям. Это важно, и это плохо — к приложениям, а не к функционализму.

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

Технология Web Intents, продвигаемая компанией Google, предлагает веб-приложениям совершенно другой тип взаимодействия. Она происходит из архитектуры Intents, операционной системы Android. Сущность ее в том, что приложения, взаимодействуя с системой, запрашивают у нее выполнения какого-либо действия, а система выдает на это список других приложений, которые заявили о наличии у себя необходимого функционала. Это может быть отправка в сеть фотографии, размещение блоговой записи или любое другое действие, которое может быть выполнено параллельно выполняемыми приложениями.

И вот теперь эта технология адаптируется к взаимодействию вебприложений.

Идея Web Intents — в документации определенного набора действий (intents — намерений), доступных для приложений и требующихся приложениям: редактирование, просмотр, публикация, расшаривание (предоставление своих ресурсов сторонним процессам), — покрывающих большинство взаимодействий и потребностей в веб-среде. Выглядит это следующим образом.

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

<intent

Action="Http://webintents. org/share" type="image/*" href="share. html" disposition="window|inline"

>

Атрибуты тут имеют следующие значения:

- action — действие, предоставляемое сервисом (обязательный атрибут);

- type — фильтр по типу обрабатываемого ресурса. Как всегда, позволяет не специфицировать тип на любом этапе;

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

- disposition — может принимать значение window (по умолчанию) или inline, определяя производство действий в новом окне или в контексте той же страницы.

Наиболее типичное использование на стороне приложения будет выглядеть так:

Var intent = new Intent("Http://webintents. org/share", "text/uri-list",

"Http://news. bbc. co. uk");

Window. navigator. startActivity(intent):

Пользователь при этом, в случае интерактивного взаимодействия, выбирает из предоставленных сервисов, какой именно он хочет для этого использовать (примерно как на рис. 107).

Приведем более конкретный пример для распространенного itent — edit, предоставляющие различному контенту средства редактирования:

<intent

Act ion=”Http://webintents. org/edit"

Type=”image/*”

Href="edit. html"

>

В данном случае мы регистрируем intent для редактирования изображений, редактирование будет производиться в отдельном окне с url edit. html.

(Вообще, в стандарте предусмотрено редактирование следующих типов контента: image/* ,udio/* ,ideo/* ,t/uri-list.)

Клиентская часть будет выглядеть следующим образом:

Var intent = new Intent("Http://webintents. org/edit”) window. navigator. startActivity(intent);

В настоящее время определены схемы для следующих Intents:

- Discover — предоставляет разработчикам запрашивать API внешних сервисов;

- Share — предоставляет механизм расшаркивания данных различных типов;

- Edit — редактирование контента различных типов;

- View — предоставляет механизм просмотра данных различных типов в сторонних приложениях;

- Pick — выбор файлов с сервиса для использования в клиентском приложении;

- Subscribe — предоставляет приложению оформлять подписку на данные с текущей страницы;

- Save — услуги сохранения данных для приложения.

Список не впечатляет? Мало возможностей и расплывчатые формулировочки? Мне тоже так кажется. Но разработчики нам обещают, что по мере роста запросов новые intents будут добавляться к списку. Также планируется возможность создавать и документировать новые виды Intend.

В настоящее время технология WebIntents в браузерах практически не реализована, для того чтобы пользоваться ей уже сейчас, официальный сайт Http://webintents. org рекомендует использовать специальную JavaScript-библиотеку:

<script src="Http://webintents. org/webintents. min. js"></script>

Что касается полноценного использования — будем ждать, когда браузеры «дорастут».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *