android-javascript调用java方法获取html内容

一、使用WebViewClient监听页面加载完毕,并定义js要调用的方法

//1、首先开启javasript并设置接入类
s.setJavaScriptEnabled(true);
webView.addJavascriptInterface( this,"main" );
//2、实现WebViewClient
webView.setWebViewClient(new WebViewClient()
 {
  public boolean shouldOverrideUrlLoading(WebView view, String url)
   {
    view.loadUrl(url);
    return true ;设置WebView禁止打开新tag
   }
@Override
  public void onPageFinished(WebView view, String url) {
   super.onPageFinished(view, url);
   //获取HTML
  webView.loadUrl("javascript:window.main.getHtml(document.body.innerHTML)" );
   }
  }
 });
//3、供javascript调用java的方法
 public void getHtml(String data){
   //data为html内容
 }
}

二、分析
webView .loadUrl( "javascript:window.main.getHtml(document.body.innerHTML)" )
1、main:javascript需要调用的方法所在类,通过“webView.addJavascriptInterface(  this , "main" );”来设置。
2、getHtml:即javascript需要调用的方法。
3、documen.body.innerHtml:获取网页内容并作为getHtml的参数传入。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Android中,您可以使用WebView来加载一个网页,然后通过JavaScript与Java代码进行交互。下面是一个示例: 首先,在您的Java代码中,您需要定义一个类并将其公开给JavaScript使用。例如: ```java public class MyJavaScriptInterface { Context mContext; MyJavaScriptInterface(Context context) { mContext = context; } @JavascriptInterface public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } } ``` 在这里,我们定义了一个名为 `MyJavaScriptInterface` 的类,并将其传递给 `Context`,以便我们可以在其中显示Toast消息。我们还定义了一个名为 `showToast` 的方法,并使用 `@JavascriptInterface` 注释将其标记为可以从JavaScript调用。 接下来,在您的Activity中,您需要启用JavaScript,并将您的Java对象添加到WebView中。例如: ```java WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new MyJavaScriptInterface(this), "Android"); webView.loadUrl("file:///android_asset/index.html"); ``` 在这里,我们首先获取WebView实例,然后启用JavaScript。接下来,我们将 `MyJavaScriptInterface` 实例添加到WebView中,并将其命名为 `Android`,这是JavaScript中将使用的名称。最后,我们使用 `loadUrl` 方法将WebView加载到我们的HTML文件中。 最后,在您的JavaScript代码中,您可以使用以下方式调用Java方法: ```javascript Android.showToast("Hello World!"); ``` 在这里,我们使用我们在Java代码中定义的名称 `Android` 来调用 `showToast` 方法,并将消息传递给它。在这种情况下,我们将显示一个Toast消息,显示 "Hello World!"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值