Web Share Target API

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

Я был очень рад, что Chrome начал работать в API-интерфейсе веб-доступа к ресурсам, что дополняет работу над navigator.share. Где «navigator.share» позволяет вам обмениваться информацией с вашего веб-сайта на любое приложение на устройстве пользователя, которое может получать «акции» («Intent.ACTION_SEND» на языке Android), веб-ресурс для общего доступа позволяет вашему веб-сайту (или PWA ) сказать: «Я тоже хочу играть в эту игру».

Я очень рад сказать, что эта работа теперь доступна в Chrome Canary на Android.

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

Сначала вы создаете свойство 'object', называемое share_target, которое содержит одно свойство, называемое url_template, которое имеет путь, который должен быть открыт, когда пользователь выбирает наш сервис. На Android вы можете использовать три подстановочных имени: * {title} - equivelent для .title в API navigator.share или Intent.EXTRA_SUBJECT из Android Intent. * {text} - равнозначный .text на navigator.share API, или Intent.EXTRA_TEXT из Android Intent. * {url} - равнозначный .url на navigator.share API или необработанные данные из Android Intent.

Вы можете попробовать это сегодня, установив PWA (Twitter) (0). Твиттер ниже:

{
    ...
    "name": "Twitter Lite",
    "share_target": {
        "url_template": "compose/tweet?title={title}&text={text}&url={url}"
    },
    ...
}

Сейчас есть некоторые ограничения:

  • У вас может быть только один за манифест, это означает, что в случае с Twitter у них не может быть «Share to DM». * Предлагаются некоторые расширения, такие как событие сервис-работника под названием «navigator.actions», которое будет запущено без необходимости открывать поверхность интерфейса, но они еще не реализованы. * Вы можете делиться только «текстом», что означает, что если вы хотите разделить Blob данных, которые вам нужно сохранить, с URL-адресом, который затем будет передан. * Он работает только на Android. * У вас должен быть установлен PWA, поэтому вы не можете делать диск путем регистрации целевой цели. Когда Chrome генерирует «веб-APK», теперь он смотрит на «share_target», чтобы узнать, должен ли он регистрировать собственный «<фильтр-замысел>». * Он еще не стандартизирован как часть спецификации манифеста. : / oh - и он также может измениться.

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

Если вы хотите отслеживать обновления этого API, проверьте Статус Chrome.

About Me: Paul Kinlan

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.