Sto sviluppando un'applicazione e ho capito quasi tutto, tranne il plug-in personalizzato dello schema URL (https://github.com/EddyVerbruggen/Custom-URL-scheme). Ho installato con successo il plugin e impostato uno schema di URL personalizzato di signsrestaurantandbar. Quindi, quando uso signsrestaurantandbar: //, la mia applicazione si apre. Il problema che sto affrontando è la gestione dell'URL. Nel readme, dice che posso usare function handleOpenURL (url) per questo, ma sto ancora avendo problemi nel tentativo di caricare una pagina particolare all'interno dell'app.Uso di handleOpenURL con schema URL personalizzato in Cordova
Ecco cosa ho provato:
function handleOpenURL(url) {
var strValue = url;
strValue = strValue.replace('signsrestaurantandbar://','');
window.location.href = strValue + ".html";
}
Ho messo questo nella mia pagina index.html ... pensano che dovrebbe aprire page.html sul caricamento signsrestaurantandbar: // pagina, ma non lo fa propriamente. Nella mia console di Chrome, dice che ha caricato la pagina, ma appare vuota senza errori e questo accade solo una volta. Quando provo a caricare signsrestaurantandbar: // page la seconda volta, si carica l'app.
Apprezzerei qualsiasi suggerimento su come affrontare il caricamento di particolari pagine utilizzando lo schema di URL personalizzato.
Accidenti, era quello che mancava. Penso di capire meglio il CSP ora. Grazie ancora! – user3839044
Ci sarebbe qualche altra ragione per cui handleOpenURL() non viene invocato? Ho provato l'approccio sopra con '' e il CSP insieme, ma non riesco ancora a ottenere la funzione per essere chiamato. –
johnborges
Risolto il problema. Per qualche motivo la funzione handleOpenURL() funziona solo quando l'ho nel tag '
Aggiungi funzione handleOpenURL globale utilizzando questo codice:
Vedi Cordova Custom URL Scheme Handling.
Nota che se si utilizza
alert
in questa funzione la vostra applicazione potrebbe bloccarsi:Il vantaggio di questo metodo è che non è necessario cambiare la politica di sicurezza contenuti utilizzando
Content-Security-Policy
meta tag.fonte
2016-11-20 19:48:06
Dove esattamente aggiungo il tuo codice? Ho provato 'document.addEventListener ('deviceready', function() {...' ma non ha funzionato .. – sooon
@sooon Sì, è qui che lo posiziono, nel gestore di eventi 'deviceready'. Come testate il vostro' handleOpenURL 'è stato richiamato? Ho notato che gli strumenti di sviluppo di Chrome non vengono registrati correttamente per me. –
Ho messo un'