2012-01-24 8 views

risposta

14

In realtà, questo non è molto difficile. Qui, vi mostrerò come chiamare codice nativo da javascript all'interno della pagina e viceversa:

Chiamate al codice nativo all'interno di visualizzazione Web:
Quando si crea la visualizzazione Web aggiungere javascript interfaccia (classe fondamentalmente java cui metodi saranno esposti per essere chiamato tramite javascript nella vista web.

JavaScriptInterface jsInterface = new JavaScriptInterface(this); 
webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(jsInterface, "JSInterface"); 

la definizione della classe di interfaccia javascript in sé (questo è di classe esemplare ho preso da un'altra risposta di mine e si apre il video negli intenti nativo)

public class JavaScriptInterface { 
    private Activity activity; 

    public JavaScriptInterface(Activity activiy) { 
     this.activity = activiy; 
    } 

    public void startVideo(String videoAddress){ 
     Intent intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file 
     activity.startActivity(intent); 
    } 
} 

Ora, se si desidera chiamare questo codice costituiscono il codice HTML della pagina si fornisce il seguente metodo:

<script> 
    function playVideo(video){ 
     window.JSInterface.startVideo(video); 
    } 
</script> 

Facile no?

Calling codice javascript da codice nativo:
Questo è anche semplice supponiamo che nel codice del HTML caricata in WebView hai javascript funzione definita:

<script> 
    function function(){ 
     //... do something 
    } 
</script> 

quindi si chiama questa funzione tramite il WebView nel codice nativo così:

webView.loadUrl("javascript:function()"); 
+0

Hey grazie Boris: D Questo è quello che cerco esattamente. Mi piace molto che tu abbia scritto in dettaglio in un modo molto semplice e semplice. Jgd, God Bless you :) – Prax

+0

il codice javascript di chiamata da codice nativo funziona, ma come lo si modifica per restituire un valore dal javascript al codice java – user280109

+0

@ user280109: è necessario aggiungere i valori dei parametri nella chiamata. Ecco un esempio: http://stackoverflow.com/a/4330642/1108032 –

0

Ecco un tutorial per la creazione di un plugin PhoneGap. Anche il instructions per il plugin ChildBrowser è particolarmente buono.