2016-03-31 7 views
8

Il seguente codice suppone per aprire un URL in un app esterna:apertura URL di protocollo personalizzato non funziona in modo coerente in Chrome

var a = document.createElement('a'); 
a.href = 'myprotocol:[email protected];fromuser=John%20Doe;mode=audiovideo'; 

document.body.appendChild(a); 
a.click(); 

Quando l'applicazione non è installata, su alcuni PC Chrome non riesce in silenzio mentre sul altri visualizza questa finestra:

Launch

dove si trova questo comportamento definito?

risposta

0

associazione Applicazione per URI Schema

Se si desidera registrare la vostra applicazione per gestire un URI specifico schema in Windows, allora si dovrebbe registrare nel Registro di sistema. È spiegato in MSDN article e su Google "Registering an Application to a URI Scheme" vengono forniti numerosi esempi.

HKEY_CLASSES_ROOT/ 
    your-protocol-name/ 
    (Default) "URL:your-protocol-name Protocol" 
    URL Protocol "" 
    shell/ 
     open/ 
     command/ 
      (Default) PathToExecutable 

Web di registrazione schema App

È possibile register a custom protocol handler con Google Chrome utilizzando navigator.registerProtocolHandler (Firefox ha la funzione di troppo).

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App'); 

Si prega di notare, che il protocollo deve iniziare con web+. Altrimenti si otterrebbe l'errore SECURITY_ERR: DOM Exception 18.

Oppure, se stai sviluppando un'applicazione Chrome, puoi inserire register your handlers nel file manifest.

"url_handlers": { 
    "view_foo_presentation": { 
    "matches": [ 
     "https://www.foo.com/presentation/view/*" 
    ], 
    "title": "View Foo presentation" 
    } 
} 

Si può anche guardare in Chrome URL (chrome://chrome-urls/) e vedere se si può cambiare in qualsiasi impostazione.

+0

Grazie per la risposta, ma questo non è quello che sto cercando. Sono a conoscenza di 'registerProtocolHandler', ma voglio aprire un'app desktop, non una webapp. – Pavlo

+0

@Pavlo che si chiama registrazione schema URI. Ho aggiunto un esempio e link su come farlo in Windows. Immagino che sia il tuo OS di destinazione. – Uzbekjon

+0

So come implementarlo. La mia domanda riguarda il comportamento di Chrome. – Pavlo

Problemi correlati