从webview到textview中提取HTML代码的方法可以使用以下步骤:
WebViewClient
监听onPageFinished()
方法,在网页加载完成后获取HTML代码。使用webView.loadUrl("javascript:window.android.onHtmlExtracted(document.documentElement.outerHTML);")
执行JavaScript代码,将HTML代码通过接口回调传递给Android端。OnHtmlExtractedListener
,定义一个方法onHtmlExtracted(String html)
用于接收HTML代码。WebViewClient
的onPageFinished()
方法中获取到HTML代码后,调用接口OnHtmlExtractedListener
的onHtmlExtracted()
方法将HTML代码传递给Android端。在Android端接口的实现方法中,将HTML代码设置给textview进行显示。以下是示例代码:
在Android端:
public interface OnHtmlExtractedListener {
void onHtmlExtracted(String html);
}
public class MainActivity extends AppCompatActivity implements OnHtmlExtractedListener {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
WebView webView = findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:window.android.onHtmlExtracted(document.documentElement.outerHTML);");
}
});
webView.loadUrl("http://example.com");
}
@Override
public void onHtmlExtracted(String html) {
textView.setText(Html.fromHtml(html));
}
}
在webview中的HTML代码中添加以下JavaScript代码:
<script>
window.android = {
onHtmlExtracted: function(html) {
// 将html传递给Android端
if (typeof onHtmlExtractedListener !== 'undefined') {
onHtmlExtractedListener.onHtmlExtracted(html);
}
}
};
</script>
这样,当webview加载完成后,HTML代码会被传递给Android端,并在textview中显示出来。
领取专属 10元无门槛券
手把手带您无忧上云