javascript - Instale un manejador de servicios para el esquema URI desde la página web
google-chrome gmail (1)
Para Chrome (13+), Firefox (3.0+) y Opera (11.60+) es posible registrar la aplicación web como manejador de servicios para un esquema de URI personalizado utilizando la API de JavaScript:
window.navigator.registerProtocolHandler(protocol, uri, title);
-
protocol
es el protocolo que el sitio desea manejar, especificado como una cadena. -
uri
es el URI del controlador como una cadena. Puede incluir "% s" para indicar dónde insertar el URI de escape del documento que se va a manejar. -
title
es el título del controlador que se presenta al usuario como una cadena.
Específicamente para Chrome hay una limitación que no permite usar esquemas personalizados que no comiencen con web+
prefijo web+
(excepto los estándar: mailto
, mms
, nntp
, rtsp
y webcal
). Entonces, si desea registrar su aplicación web como manejador de servicios como GMail, debe escribir algo como esto:
navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail");
o
navigator.registerProtocolHandler("web+myscheme", "https://www.example.com/?uri=%s", "My Cool App");
Preste atención al patrón de URI, debe contener %s
que se reemplazará con el URI real de los clics del usuario del enlace. Por ejemplo:
<a href="web+myscheme:some+data">Open in "My Cool App"</a>
activará la solicitud GET
para http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data
Aquí hay algunos enlaces útiles:
Al acceder a Google Mail o Google Calendar desde Chrome, aparece un pequeño icono en la barra de direcciones que permite instalar un controlador de servicio personalizado para el esquema URI (marcado con un cuadrado rojo en la imagen).
La información sobre herramientas para el icono es: This page wants to install a service handler
. Cuando hago clic en el icono y permito que Google Mail maneje los enlaces mailto:
, todos los enlaces mailto:
se abren en Chrome.
¿Es posible crear una página web que pueda instalar un controlador personalizado para mi esquema URI personalizado como lo hace Google Mail?