2011-12-21 13 views
15

Voglio essere in grado di collegarmi a una pagina web all'interno della webview di phonegap che carica una pagina web esterna all'interno della stessa webview di phonegap. Se faccio questo, carica all'interno del WebView:Come posso caricare una pagina Web all'interno della webview di phonegap?

public class App extends DroidGap { 
    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("http://google.com"); 
    } 
} 

Tuttavia, voglio avere una pagina interna ha lanciato il primo, con un link alla pagina esterna, in modo da fare questo:

public class App extends DroidGap { 
    @Override 
    public void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.loadUrl("file:///android_asset/www/index.html"); 
    } 
} 

e ho un link:

<a href="#" onclick="navigator.app.loadUrl('http://google.com')">Google</a> 

ma questo link lancia Google al di fuori della app, nel browser web, invece che nella WebView PhoneGap. Cosa posso fare per assicurarmi che il link alla pagina esterna sia lanciato all'interno della webview dell'app su phonegap?

+0

Dove posso aggiungere questo? – MaxRocket

risposta

18

Ahhh .. Trovato la risposta su this question. ho dovuto aggiungere

<access origin="www.google.com"/> 

al file phonegap.xml.

3

Nell'ultima versione di phonegab (1.7) in Cordova.plist è presente una chiave: OpenAllWhitelistURLsInWebView impostato su Sì.

+1

..così, questo è ovviamente solo per iOS. – tapmonkey

9

Questo sembra essere cambiato e l'origine dell'accesso sembra non avere alcun effetto. Se stai usando il plugin di whitelist cordova, come sembra essere standard. È necessario utilizzare allow-navigation nel file config.xml. Senza questo aprirà il tuo browser web.

<plugin name="cordova-plugin-whitelist" version="1"/> 
<allow-navigation href="https://google.com/*" /> 

quindi è possibile utilizzare window.location = 'https://google.com' per passare a un'altra pagina web all'interno del vostro JS.

+0

Questa dovrebbe essere la risposta corretta. Mi ha salvato un sacco di dolore. Le altre risposte sono obsolete per v4. Ho appena aggiunto

+0

Non penso che sia necessario il tag . Solo . – SBerg413

+0

Ho provato e non sembra funzionare per me con CLI 5.1.1. Su Android si apre sempre in una nuova scheda :(anche con '' e il plugin installato –

Problemi correlati