2013-03-03 8 views
14

Apro una nuova pagina con window.open("apphelp.html", "_blank", "location=no"), quindi mi mostra una nuova finestra con la mia pagina. Alla fine di questa pagina vorrei mettere un "pulsante di chiusura", in modo che l'utente possa tornare da dove è venuto. Ho provato con window.close() ma non ha funzionato. Qualche suggerimento?window.close equivalente in PhoneGap con InAppBrowser

+0

Hai trovato una soluzione al tuo problema, ho problemi con la stessa cosa. – SimonSays

+0

No, ci riproverò domani. –

+1

Ho provato href = "javascript: history.go (-1); con var ref = window.open (encodeURI (url), '_self', 'location = no') e chiude la finestra e ritorna a il file indice della mia app, non solo la chiusura da dove l'ho aperto, sarebbe stato migliore, vedrò se trovo qualcos'altro, ho letto che con il mio codice dovresti essere in grado di usare ref.close(); Ma non sono ancora riuscito a farlo funzionare –

risposta

40

Uso una soluzione ... Poiché inappBrowser può essere chiuso solo con il pulsante Indietro o tramite javascript. Visualizzo un pulsante di chiusura dal lato server che cambierà l'url corrente attivando anche l'evento 'loadstop' che consente di utilizzare il metodo .close(), in questo modo verrà chiuso solo il browser figlio, la tua app rimarrà nello stesso stato.

Per esempio il mio visualizzazione server di una pagina web con un pulsante di chiusura, qualcosa di simile:

<a href="/mobile/close">Close</a> 

nel mio javascript lato client (l'applicazione PhoneGap):

var ref = window.open(encodeURI(url), '_blank', options); 
ref.addEventListener('loadstop', function(event) {   
    if (event.url.match("mobile/close")) { 
     ref.close(); 
    } 
}); 
+0

Lo dimostrerò settimana .... –

+0

Ha funzionato bene, grazie mille! –

+0

E se non si controlla cosa viene restituito dal server? – Nilesh

5

trasformo per il multi piattaforma supporto come questo:

nella terza pagina html e js

closeBrowser(){ 
    if(history.length==1){ 
     window.open('mobile/close'); 
    }else{ 
     history.back(); 
    } 
} 



<a href="javascript:;" onclick="closeBrowser()">Close</a> 

nel mio javascript lato client (l'applicazione PhoneGap):

var ref = window.open(encodeURI(url), '_blank','location=no'); 
ref.addEventListener('loadstart', function(event) { 
    if (event.url.match("mobile/close")) { 
     ref.close(); 
    } 
}); 

grazie al primo piano!

Problemi correlati