gpt4 book ai didi

android - 如何从XWalkView获取html内容?

转载 作者:技术小花猫 更新时间:2023-10-29 12:55:10 33 4
gpt4 key购买 nike

我已尝试使用 JavaScriptInterface 在 WebView 中进行操作。但它不起作用。如何从XWalkView获取HTML内容?

这样我就可以从 WebView 获取 HTML:

    public class MainActivity extends AppCompatActivity {

WebView myWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

myWebView.loadUrl("http://joerichard.net/api/test/generate.htm");
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");

myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if(url.endsWith("generate.htm")){
myWebView.loadUrl("javascript:window.HtmlViewer.showHTML" +
"('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
}
});

}

class MyJavaScriptInterface {

private Context ctx;

MyJavaScriptInterface(Context ctx) {
this.ctx = ctx;
}

public void showHTML(String html) {
Document doc = Jsoup.parse(html);
}

}

}

我对 XWalkView 进行了同样的尝试,但没有成功。如何从XWalkView获取HTML源码?

最佳答案

添加 JavaScript 接口(interface):

 webview.addJavascriptInterface(new test(this),"bla");

设置客户端

  webview.setResourceClient(new XWalkResourceClient(webview) {

@Override
public void onProgressChanged(XWalkView view, int progressInPercent) {
super.onProgressChanged(view, progressInPercent);
pbLoading.setProgress(progressInPercent);
}

@Override
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
webview.load("javascript:window.bla.showHTML" +
"('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');"
,null);
}
});

实现html函数

class test{
private Context ctx;

test(Context ctx) {
this.ctx = ctx;
}
@JavascriptInterface
public void showHTML(String html) {
new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html)
.setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
}

}

关于android - 如何从XWalkView获取html内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844498/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com