Кратко

  • Первый публичный проект W3C от декабря 2019 года описал передачу текста и ссылок из сайта в интерфейс выбора адресата, который предоставляет пользовательский агент.
  • Рекомендация W3C от мая 2023 года охватила файлы, предварительную проверку canShare(), действие пользователя при запуске и отмену отправки.

Кнопки «поделиться» когда-то выстраивались рядом со статьей как ряд лавок на вокзале. Одна предлагала известную службу, другая — еще одну, третья пыталась угадать следующую моду. Нужной двери могло не оказаться. Редакция не видит телефон читателя изнутри и не знает, хочет ли тот отправить ссылку другу, сохранить в заметках или передать ее на другое устройство. Торговый ряд был списком догадок, сделанных за другого человека.

У телефона есть более свежая карта. Он знает свои приложения и доступные способы отправки. У сайта есть содержимое посылки: заголовок, несколько слов и URL. Web Share API позволяет встретиться на пороге, не передавая сайту ключи от всего дома. Страница вызывает действие, устройство показывает варианты, читатель решает.

В первом публичном рабочем проекте W3C от 17 декабря 2019 года показан вызов navigator.share() после нажатия кнопки. Сайт передает данные вроде заголовка и ссылки; пользовательский агент открывает выбор цели. В раннем описании данных были заголовок, текст и URL. Сайт не обязан вести перепись установленных приложений, чтобы дать человеку возможность отправить статью.

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

Рекомендация W3C от 30 мая 2023 года расширила описанную передачу на файлы. В примере объект File помещается в массив files. Метод navigator.canShare(data) позволяет спросить заранее, можно ли поделиться выбранными данными, не вызывая окно выбора. Это осмотр посылки перед тем, как звать отправителя к стойке. Сам запрос на отправку выполняет share().

Для него требуется действие пользователя — обычно нажатие кнопки. Рекомендация описывает и ситуацию, когда отправка уже идет, и отказ, и отмену. Человек может открыть меню, подумать и закрыть его. Страница должна спокойно вернуть его к чтению. Объявлять отмену катастрофой было бы странным поведением для кнопки, которая всего лишь предложила выбор.

Адресаты определяются средой пользовательского агента. По тексту рекомендации это могут быть приложения, сайты или контакты. На одном устройстве появляется привычная панель, на другом — иное меню. Стандарт не рисует всем одинаковый интерьер. Он описывает передачу: от сайта — данные, от устройства — доступные варианты, от человека — решение.

История публикаций W3C отмечает первый публичный проект в 2019 году и рекомендацию в 2023-м. Поздний документ подробнее говорит о файлах и проверке данных. Но маленький сюжет не нуждается в новой развязке: сайт пишет записку к ссылке и ждет, пока ее владелец выберет дверь.

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

В итоге сайт получает полезную кнопку, не присваивая себе роль хозяина чужой адресной книги. Он может предложить статью миру, но путь к конкретному получателю выбирает читатель. Это небольшая победа здравого смысла, оформленная как браузерный API.