2012-01-24 12 views

Odpowiedz

14

W rzeczywistości nie jest to trudne. Tu pokażę jak zadzwonić natywnego kodu z javascript w obrębie strony i vice-versa:

Wywołanie kodu macierzystego z zasięgu wzroku internetowej:
Podczas tworzenia widoku internetowej dodać interfejs javascript (klasa zasadzie java którego metody będą narażone na miano poprzez javascript w widoku internetowej.

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

definicja javascript samej klasy interfejsu (jest to przykładowa klasa wziąłem z innej odpowiedzi kopalni i otwiera wideo w natywnym intencyjny)

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); 
    } 
} 

Teraz, jeśli chcesz wywołać ten kod tworzą kod HTML strony, podać następujące metody:

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

Prosta prawda?

Wywołanie kodu javascript z kodu natywnego:
Jest to również proste załóżmy w kodzie HTML załadowanego WebView masz funkcja javascript zdefiniowane:

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

Następnie należy wywołać tę funkcję przez WebView w natywnym kodzie tak:

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

Hej dzięki Boris: D Dokładnie tego szukam. Bardzo podoba mi się to, że napisałeś szczegółowo w bardzo ładny prosty sposób. Jgd, niech Cię Bóg błogosławi :) – Prax

+0

kod wywołania javascript z kodu natywnego działa, ale jak to zmienić, aby zwrócić wartość z javascript do kodu java – user280109

+0

@ user280109: Musisz dodać wartości parametrów do połączenia. Oto przykład: http://stackoverflow.com/a/4330642/1108032 –

0

Oto tutorial tworzenia PhoneGap Plugin. Również wtyczka instructions dla wtyczki ChildBrowser jest szczególnie dobra.

Powiązane problemy