1

高さ 60 dp の webview を使用しており、ローカルの html ファイルをそれに渡しています。デフォルトでは、webview のリンクをクリックすると、ブラウザを開く必要があります。しかし、奇妙なことに、webviewでリンクを開きます.webviewクライアントも試して、インテントを介して応答URLをデフォルトブラウザに渡そうとしましたが、無駄でした..

私のコードスニペット:

    WebViewClient yourWebClient = new WebViewClient()
       {

           @Override
           public boolean shouldOverrideUrlLoading(WebView  view, String  url)
           {
               System.out.println("Inside WebViewClient the URL is....."+url);

               Intent i = new Intent(Intent.ACTION_VIEW);
               i.setData(Uri.parse(url));
               startActivity(i);

            return true;
           }
       };

    WebView ad = (WebView) findViewById(R.id.webview1);
    ad.getSettings().setJavaScriptEnabled(true);
    ad.loadUrl(feed.getItem(position).getLink());
    ad.getSettings().setLoadWithOverviewMode(true);
    ad.getSettings().setUseWideViewPort(true);
    ad.setInitialScale(100);
        ad.setWebViewClient(yourWebClient);
    ad.loadUrl("file:///android_asset/advertisement.htm");
4

1 に答える 1

1

現在の Web ビューの読み込みを停止します。ad は WebView のオブジェクトなので、次のようにしてみてください。

  @Override
       public boolean shouldOverrideUrlLoading(WebView  view, String  url)
       {
           System.out.println("Inside WebViewClient the URL is....."+url);

            ad.stopLoading();
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);

        return true;
       }

WebView の設定を追加するときに、これも追加します。

 ad.getSettings().setSupportMultipleWindows(false);

編集:

Chrome クライアントを WebView に関連付けてから、以下を確認してください。

 ad.setWebChromeClient(new MyWebChromeClient());

これがうまくいくことを願っています。

于 2011-12-28T08:04:17.310 に答える