繁体   English   中英

当webview页面不同时,如何从java调用javascript函数

[英]How to call javascript function from java when webview page is different

我正在使用HTML和webview来显示一个android项目。

我有

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函数?

如果您是网页(chat.html)的所有者,则可以集成调用本机方法的JS函数。 在这个本机方法中,您可以调用target-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");

假设你在javascript中的函数是你好的。

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

我想那就行了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM