您正在加载没有适当结构的
html代码(因此,所有定义
head都将丢失,如CSS引用),并且没有初始文档(或使用基本url加载),所有相对路径都将损坏。
<div > <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();@Overrideprotected 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 browserprivate 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(); } }}


