0

WebビューにHTMLページを正常にロードできます。webviewclientを設定することで、webviewでクリックされたURLを取得することもできます。しかし、私が欲しいのは何か違うものです。私はWebページをロードするWebビューと、そのWebページに存在するすべてのURLが必要なクリックボタンも持っています。どうすればこれを行うことができますか?

これまでに試したコードは

dialog = ProgressDialog.show(Activity.this, null, null);
    dialog.setContentView(R.layout.loader);

    w.setWebViewClient(new MyWebViewClient());

    w.loadDataWithBaseURL("same://ur/l/tat/does/not/work", string_html,
            "text/html", "utf-8", null);

private class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);

        if (url.startsWith("http://")) {
            System.out.println("INSIDE IF"); // NON-NLS
            view.stopLoading();

            urlToSend = url;

            System.out.println("in " + urlToSend);

            Intent intent = new Intent(DetailNews.this, Web.class);
            intent.putExtra("Web", url);
            startActivity(intent);

        }
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        dialog.dismiss();
    }
}
4

1 に答える 1

1

ページ上のすべてのURLを取得する場合は、htmlパーサーが必要です。jsoupを試し てくださいプロジェクトで外部ライブラリを使用したくない場合は、独自のパーサーを作成できます。

1)HttpUrlConnectionまたはHttpClientを介してソースページをロードします

2)リーダーを使用して、ページのコンテンツを1行ずつ繰り返します

3)リンクを抽出するための正規表現式を作成します。

同様の投稿

于 2013-02-11T15:37:41.427 に答える