如何在WebView Android上显示网页的一部分

我正在尝试从网页中提取一小部分并加载到Webview中,我尝试按照链接中给出的解决方案进行操作,但是它不起作用

htmlDocument = Jsoup.connect(htmlPageUrl).get();

element = htmlDocument.getElementsByClass("darewod");

String html = element.toString();

String mime = "text/html";

String encoding = "utf-8";

我已经尝试了以下两种方法来加载到webview,但似乎不起作用,它只是在UI上打印HTML

  wv1.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);

wv1.loadData(html, "text/html", null);

你能告诉我我是否在这里想念任何东西吗?

回答:

您正在加载没有适当结构的

html代码(因此,所有定义head都将丢失,如CSS引用),并且没有初始文档(或使用基本url加载),所有相对路径都将损坏。

<div class="darewod"> <a title="Workout of the Day" href="/workouts/lower-abs-workout.html" rel="alternate"><img src="/images/grid/wod/2016/wod_nov8.jpg" alt="Workout of the Day"></a> </div>

您可以做什么:用所选元素替换文档的主体,然后保留有关基础的结构和信息:

WebView wv;

Handler uiHandler = new Handler();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

wv = (WebView)findViewById(R.id.webView);

wv.setWebViewClient(new MyWebViewClient());

new BackgroundWorker().execute();

}

// load links in WebView instead of default browser

private class MyWebViewClient extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return false;

}

@RequiresApi(21)

@Override

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

view.loadUrl(request.getUrl().toString());

return false;

}

}

private class BackgroundWorker extends AsyncTask<Void, Void, Void> {

@Override

protected Void doInBackground(Void... arg0) {

getDarewod();

return null;

}

public void getDarewod(){

try {

Document htmlDocument = Jsoup.connect("http://darebee.com/").get();

Element element = htmlDocument.select("#gkHeaderMod > div.darewod").first();

// replace body with selected element

htmlDocument.body().empty().append(element.toString());

final String html = htmlDocument.toString();

uiHandler.post(new Runnable() {

@Override

public void run() {

wv.loadData(html, "text/html", "UTF-8");

}

});

} catch (IOException e) {

e.printStackTrace();

}

}

}

以上是 如何在WebView Android上显示网页的一部分 的全部内容, 来源链接: utcz.com/qa/407058.html

回到顶部