2

webview android で Web ページを部分的に表示し、Web ページから div 要素を削除したいと考えています。私はこのようなウェブページを持っています

<!DOCTYPE html>
<body>

<div id="a"><p>Remove aa</p></div>
<div id="b"><p>bb</p></div>

</body></html>

ここで、ID 'a' の div を Web ページから削除したいと考えています。

私は Jsoup でコーディングしようとしましたが、それを理解するのに十分ではありません。私の完全なコードを見てください:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class CustomWebsite extends Activity {

    private WebView webView;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom_website); 

         Document doc;

         String htmlcode = "";

         try {
             doc = Jsoup.connect("http://skyasim.info/ab.html").get();
             doc.head().getElementsByTag("DIV#a").remove();

              htmlcode = doc.html();


         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }

        webView = (WebView) findViewById(R.id.webView_test);
        webView.setWebViewClient(new myWebClient());
        webView.getSettings().setJavaScriptEnabled(true); 
        webView.loadUrl("htmlcode");


        }

          public class myWebClient extends WebViewClient
            {
                @Override
                public void onPageStarted(WebView view, String url, Bitmap favicon) {
                    // TODO Auto-generated method stub
                    super.onPageStarted(view, url, favicon);
                }

                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    // TODO Auto-generated method stub

                    view.loadUrl(url);
                    return true;

                }
            }


}
4

3 に答える 3

2

以前に Jsoup を使用して同様のことを試みたことがありますが、アプリは常にクラッシュします。Javascript のみを使用することにオープンな場合 (アプリのサイズを小さくするのに役立ちます)、私がアプリに対して行ったことは次のとおりです。

webview3.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:var con = document.getElementById('a'); " +
                    "con.style.display = 'none'; ");

            }


    });

私のJavascriptが正しいことを願っています。ここでの考え方は、ページの読み込みが完了した後に Javascript を使用して div を非表示にすることです。

于 2013-08-02T08:54:22.360 に答える