1

我正在使用高度为 60dp 的 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

停止当前的 webview 加载。由于广告是 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 回答