尝试将URL从webview传递到浏览器

时间:2011-12-27 10:35:17

标签: android webview webchromeclient

我正在使用高度为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");

1 个答案:

答案 0 :(得分: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客户端与您的网络视图相关联,然后检查:

 ad.setWebChromeClient(new MyWebChromeClient());

希望这适合你。