Узнайте, как использовать Web Share API, чтобы сделать ваше веб-приложение более естественным.

Google и команда Chromium продвигают Интернет с помощью новых захватывающих функций, которые привносят в онлайн-мир возможности, аналогичные нативным.

Недавно они выпустили новый API, который позволяет нам обмениваться данными из нашего веб-приложения так же, как мы делаем это из наших приложений для iOS и Android. Web Share API меняет правила игры.

Web Share API позволяет веб-приложениям обмениваться ссылками, текстом и файлами с другими приложениями, установленными на устройстве, точно так же, как и собственные приложения.

Совет. Используйте Bit (Github) для совместного использования и повторного использования компонентов JavaScript в разных проектах. Работайте над общими компонентами как одна команда, чтобы вместе быстрее создавать приложения. Пусть Bit сделает всю тяжелую работу, чтобы вы могли легко публиковать, устанавливать и обновлять свои отдельные компоненты без каких-либо накладных расходов. "Нажмите сюда, чтобы узнать больше"



Использование веб-API

API веб-ресурса доступен в объекте навигатора как navigator.share(...) метод.

navigator.share({
    title,
    text,
    url
})
.then(() => )
.catch((error) => )

Свойства объекта необязательны. Их использование зависит от контекста или целевого приложения, которым вы хотите поделиться.

Давайте посмотрим на простой пример:

У нас есть простое приложение со входами и кнопкой. Входные данные представляют собой заголовок, текст и URL-адрес данных, которыми мы хотим поделиться. Затем мы настраиваем функцию совместного использования, которая вызывает navigator.share с соответствующим объектом. Сначала мы проверили доступность метода совместного использования в объекте навигатора. Если его там нет, мы сообщаем пользователю, что его браузер не поддерживает Web Share API.

Например, если мы нажмем на Whatsapp, откроется список ваших друзей / групп, чтобы выбрать его. Если вы нажмете на один,

Whatsapp отправит выбранному другу данные, переданные в методе navigator.share (…).

Разработчики Android увидят, что этот Web Share API такой же, как Intent.ACTION_SEND в Android.

Совместное использование файлов (например, медиафайлов)

Мы можем обмениваться файлами, такими как фотографии, аудио, видео, документы (pdf, doc, ppt и т. Д.), Используя Web Share API.

Чтобы поделиться файлами, мы передаем свойство file входному объекту navigator.share:

navigator.share({
 file: [...]
})
...

Свойство file будет хранить файлы blob в массиве.

Давайте посмотрим на пример:

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

if (navigator.canShare && navigator.canShare({
 files: files
 })) {
 ...
 }
 ...

Мы передали файлы blobs в свойстве file, это проверяет, можем ли мы поделиться конкретным файлом, который мы выбрали из input#file.

Не все типы файлов доступны через API navigator.share (…).

Вернемся к нашему примеру, мы передали выбранный файл из input#file в массив. Мы создали буквальный объект со свойствами, которыми хотим поделиться, здесь было добавлено свойство file. Это свойство file сообщает общему веб-ресурсу, что мы предоставляем общий доступ к файлам.

Наконец, мы вызываем метод navigator.share с объектом.

Теперь, когда мы выбираем цель приложения (скажем, Whatsapp), файлы в массиве files будут отправлены выбранному нами другу.

Посмотрите мою демонстрацию Web Share API



Совместимость браузеров

Этот общий веб-ресурс поддерживается не всеми браузерами.

Браузер Chrome с версии 6.1+ поддерживает только обмен текстом и ссылками.

Браузер Chrome из 7. ~ поддерживает как совместное использование файлов, ссылок, так и текста.

Заключение

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

Учить больше