2013-04-17 11 views
14

Quando accedi a Google Mail o Google Calendar da Chrome, viene visualizzata una piccola icona nella barra degli indirizzi che consente di installare il gestore di servizi personalizzato per lo schema URI (contrassegnato con un quadrato rosso nell'immagine).Installa un gestore del servizio per lo schema URI dalla pagina web

Icon for installing custom service handler

Descrizione comando per l'icona è: This page wants to install a service handler. Quando faccio clic sull'icona e consento a Google Mail di gestire i collegamenti mailto:, tutti i collegamenti mailto: si aprono in Chrome.

È possibile creare una pagina Web che sarà in grado di installare il gestore personalizzato per il mio schema URI personalizzato proprio come fa Google Mail?

risposta

21

Per Chrome (13+), Firefox (3.0+) e Opera (11.60+) è possibile registrare applicazioni web come gestore di servizi per schema URI personalizzato utilizzando API JavaScript:

window.navigator.registerProtocolHandler(protocol, uri, title); 
  • è il protocollo che il sito desidera gestire, specificato come una stringa.
  • uri è l'URI dell'handler come stringa. È possibile includere "% s" per indicare dove inserire l'URI di escape del documento da gestire.
  • title è il titolo del gestore presentato all'utente come stringa.

specifico per Chrome c'è una limitazione che non permette di utilizzare schemi personalizzati che non iniziano con web+ prefisso (ad eccezione di quelli standard: mailto, mms, nntp, rtsp e webcal). Quindi, se si desidera registrare la vostra applicazione web come gestore di servizi come GMail fare, si dovrebbe scrivere qualcosa del genere:

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"); 

Prestare attenzione al modello di URI, si deve contenere %s che verrà sostituito con l'URI effettivo dei clic dell'utente di collegamento. Per esempio:

<a href="web+myscheme:some+data">Open in "My Cool App"</a> 

attiveranno GET richiesta di http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data

Ecco alcuni link utili:

+0

Questo è molto utile. –