2014-02-09 47 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功能 –

相关问题