2014-02-09 43 views
0

我正在使用HTML和webview顯示的android項目。如何在webview頁面不同時從java調用javascript函數

display.loadUrl("file:///android_asset/index.html"); 
    display.setWebViewClient(new WebViewClient() { 

     public void onPageFinished(WebView view, String url) 
     { 
      display.loadUrl("javascript:openDialog()"); 
     } 
    }); 

,這完美的作品。但是我想調用的javascript函數在另一個頁面(chat.html)中。我如何從java的這個頁面調用javascript函數?

回答

2

如果您是網頁的所有者(chat.html),您可以集成調用本地方法的JS函數。而在這個本地方法,你可以打電話給你的目標JS:

chat.html:

function callItNow() { 
    if (typeof Android != "undefined"){ 
    if (Android.caller!= "undefined") { 
     Android.caller(); 
    } 
    } 
} 
在本機代碼

,定義一個類:

class MyJavascriptBridge { 

    public void caller() { 
    //now you know you are on the right place (chat.html) 
    webView.loadUrl("javascript:openDialog()"); 
    } 
} 

,當然你要申報通往你webview的橋樑:

webView.addJavascriptInterface(new MyJavascriptBridge(), "Android"); 
+0

它完美的工作。非常感謝 –

0

假設你在javascript中的函數是hello。

webview.loadUrl("javascript:hello();"); 

我認爲這樣做。

+0

是的,它的工作原理。但這是在webview中加載的頁面。在這種情況下,index.html - 但index.html打開另一個頁面,我想調用該頁面上的JavaScript功能 –

相關問題