使用JSoap从网址中删除页脚到Webview

时间:2016-10-21 10:28:35

标签: android html android-webview jsoup

我正在使用J soap库来删除网页视图中的页脚。 但是当我们将数据加载到Web视图时会出现问题。 [![在此处输入图像说明] [1]] [1]当数据显示在Web视图中时,此处缺少一些css。 我正在向您发送Web视图的代码和快照。 检查它并给我解决方案。

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private String url="http://stackoverflow.com/";
    private Document doc;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        StrictMode.ThreadPolicy policy = new
                StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        try {
            doc = Jsoup.connect(url).get();
            Log.e("HEEEEEEEEEEEEE", doc + "");

            Element footer = doc.getElementById("footer");
            Log.e("BY IDDDD", footer + "");
            footer.remove();

        }
        catch (IOException e) {
            e.printStackTrace();
        }

        // Load data into a WebView
        WebView wv = (WebView) findViewById(R.id.webView);
        WebSettings ws = wv.getSettings();
        ws.setJavaScriptEnabled(true);
        wv.setWebViewClient(new WebViewClient());
        //wv.loadUrl(url);
        wv.loadData(doc.toString(), "text/html", "utf-8");
    }
}

1 个答案:

答案 0 :(得分:1)

<强>问题

通过加载页面内容而不参考原始base-url,相对路径会被破坏。

<强>修正

替换

wv.loadData(doc.toString(), "text/html", "utf-8");

wv.loadDataWithBaseURL(url, doc.toString(), "text/html", "utf-8", null);
  

<强> loadDataWithBaseURL

     

使用baseUrl作为基本URL将给定数据加载到此WebView中   对于内容。基本URL用于解析相对URL   并且在应用JavaScript的相同原始策略时。 historyUrl是   用于历史记录。

请参阅:API