Il problema generale
In Javascript, ho bisogno di essere avvisato quando c'è un errore nel caricare un URL e sovrascrivere il comportamento predefinito. Per esempio, eseguendo il seguente su iOS Safari ...Come si ignora l'evento error window.location?
window.location = 'http://pageDoesNotExist.badFormatting';
... apparirà questo messaggio di avviso ...
Vorrei allegare un listener per un errore del genere e fare qualcosa invece di mostrare una brutta casella di avviso.
Il mio problema specifico
Quando un utente tocca un pulsante, ho bisogno di lanciare la mia app, se è installato, che devo aprire l'App Store per lei per scaricare la mia app. Il accepted solution è:
// Attempt to open app
window.location = 'myApp://';
// If app fails to open, will open app store 0.5 seconds later
window.setTimeout(
function() {
window.location = 'http://itunes.apple.com/myAppId';
},
500
);
Il problema qui è che il primo window.location
apre la finestra di avviso brutto quando l'applicazione non è installata. Il codice ricadrà sull'App Store. Quando l'utente torna da App Store a Safari, la brutta casella di avviso è ancora lì. Per quanto ne so, window.onerror
non attiva Safari mobile.
Date un'occhiata a questo - http://stackoverflow.com/questions/1108693/is-it-possible-to-register-a-httpdomain-based-url-scheme-for-iphone-apps-like/1109200#1109200 – mrtsherman
Penso che farai devi avere un plug-in del browser per fare qualcosa del genere perché, un po 'per definizione, quando si verifica questo errore, non c'è nessuna pagina attiva e quindi nessuna della tua pagina javascript. Quindi, il javascript dovrebbe essere integrato nel browser, quindi l'idea di utilizzare un plug-in. – jfriend00
Hai dato un'occhiata a questa [soluzione] (http://stackoverflow.com/a/1404662/371392) prima? –