2

我用 webview 创建了应用程序,我想在 webview 中加载所有内部链接并在 android 浏览器中加载外部链接。现在的问题是我正在使用 html 广告,当我点击广告时,我想打开外部浏览器,但它在 webview 中打开。唯一的问题是广告,否则一切正常。那么我该怎么做呢?

我的代码如下:

`class MyWebViewClient 扩展 WebViewClient {

@Override   
public boolean shouldOverrideUrlLoading(WebView view, String url) { if (Uri.parse(url).getHost().equals("www.mysite.com")) {
    view.loadUrl(url);
    return true;
}else{

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;}}`
4

2 回答 2

1

我做了一些修改,它非常适合横幅广告。我做了以下更改:

  • 如果条件改变。
  • 如文档所述,我正在为“if”块返回 false:

如果提供了 WebViewClient,则返回 true 表示宿主应用程序处理 url,而 return false 表示当前 WebView 处理 url

@Override   
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
    if (url.contains("www.mysite.com")) 
    {
       view.loadUrl(url);
       return false;
    }else
    {
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
       startActivity(intent);
       return true;
    }
}
于 2014-01-03T07:36:17.163 回答
1

你的代码应该是:

@Override   
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (Uri.parse(url).getHost().equals("www.mysite.com")) {
        return true;
    }else{
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return false;
    }
}

我改变的只是:

1.) 返回 true 在 webview 中加载 URL,不需要 view.loadUrl()

2.) 当你广播 ACTION_VIEW 意图时返回 false

于 2013-11-01T22:34:34.030 回答