Me preocupa constantemente que en la plataforma web creamos silos no deseados al dificultar la entrada y salida de datos de sitios web y aplicaciones, y lo que es más importante, me preocupa que los datos solo fluyan en una dirección: desde el web a las aplicaciones, porque las aplicaciones pueden estar en todos los lugares que los usuarios esperan que estén en sus dispositivos.
Estuve muy contento de que Chrome haya comenzado a trabajar en la API de Web Share Target que complementa el trabajo en navigator.share. Donde navigator.share
le permite compartir información desde su sitio web a cualquier aplicación en el dispositivo de los usuarios que pueda recibir ‘shares’ (Intent.ACTION_SEND
en el lenguaje de Android), Web Share Target le permite a su sitio web (o PWA) ) diga ‘Yo también quiero jugar en ese juego’.
Estoy muy contento de decir que este trabajo ahora está disponible en Chrome Canary para Android.
La API de Web Share Target es una pequeña API que usted define en su Manifiesto de aplicación web. Si alguna vez ha usado registerProtocolHandler
verá que no está a un millón de millas de distancia & mdash; usted define una plantilla de URL que tiene un número de variables que serán sustituidas cuando el usuario invoca la acción.
Primero crea una propiedad ‘objeto’ llamada share_target
que contiene una propiedad llamadaurl_template
que tiene la ruta que debe abrirse cuando el usuario elige nuestro servicio. En Android, puede usar los tres nombres de sustitución llamados: * {title}
- Equivelent to .title
en la API de navigator.share, oIntent.EXTRA_SUBJECT
de un Android Intent. * {text}
- Equivalente a .text
en la API navigator.share, oIntent.EXTRA_TEXT
de una intención de Android. * {url}
- Equivalente a .url
en la API de navigator.share, o los datos sin procesar de un Intento de Android.
Puede intentarlo hoy instalando PWA de Twitter. El manifiesto de Twitter está abajo:
{
...
"name": "Twitter Lite",
"share_target": {
"url_template": "compose/tweet?title={title}&text={text}&url={url}"
},
...
}
En este momento hay algunas limitaciones:
- Solo puedes tener uno por manifiesto, lo que significa que en el caso de Twitter no pueden tener un ‘Compartir en DM’. * Hay algunas extensiones propuestas, como un evento de trabajador de servicio llamado
navigator.actions
que se activará sin tener que abrir una interfaz de usuario, pero aún no se han implementado. * Solo puede compartir “texto”, lo que significa que si desea compartir una cantidad de datos, debe guardarlos con una URL que luego se compartirá. * Solo funciona en Android. * Debe tener instalado el PWA, por lo que no puede hacer un disco registrando un objetivo compartido. Cuando Chrome genera una “Web APK” ahora mira elshare_target
para ver si debe registrar elintent-filter> nativo. * Todavía no está estandarizado como parte de la especificación de manifiesto. : / oh - y también podría cambiar.
Limitaciones aparte, esta es una adición bastante sorprendente a la plataforma web que es el comienzo de romper las enormes barreras que tiene la web con respecto a la integración en las plataformas de host.
Si desea realizar un seguimiento de las actualizaciones de esta API, consulte Estado de Chrome.