0

HTMLをWebViewにロードします

this.webViewer.loadDataWithBaseURL(BASE_URL, completeNewsTemplate,
                "text/html", "UTF-8", null);

どこで BASE_URL = " http://www.example.ru " 私はそれを WebView が相対画像 src で画像をロードするために使用します

HTMLソースでhrefリンクを取得した場合

<a href="http://www.example.ru" target="_blank">Example</a>

次に、現在のWebビューをリロードするだけで、ターゲット属性は新しいウィンドウを開くために何でもします。

新しいウィンドウでwebviewを開くリンクを作成するにはどうすればよいですか?

4

1 に答える 1

1

これが解決策です。

リンクがベース URL WebView と等しい場合、現在のページのみで作業したいと考えます。

次のようにキャッチしてみることができます

webViewer.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageStarted()");
                    super.onPageStarted(view, url, favicon);

            }

            @Override
            public void onPageFinished(WebView view, String url) {
                            System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.onPageFinished()");
                super.onPageFinished(view, url);

            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out
                    .println("DetailViewActivity.onCreate(...).new WebViewClient() {...}.shouldOverrideUrlLoading()");
                return false;

            }

        });

ただし、webView でリンクをクリックすると、base_urlで onPageFinishedのみshouldOverrideUrlLoadingまたはonPageStartedが起動されることはありません。

したがって、私のソリューションは、ベースURLにwwwプレフィックスのない別のドメインを使用することです。

ここでは、www.example.com をドメイン化し、ベース URL example.com を使用する場合の例を示します。

于 2013-03-29T09:39:56.403 に答える