2013-03-11 113 views
2

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

我的代码如下:

`类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;}}` 
+0

你能告诉我们什么广告链接的样子,如果有像onclick事件的一些JS是做什么? – Aloong 2013-03-28 08:37:38

+0

我使用javascript制作简单的3d派对横幅广告(document.write)。 – MacAnony 2013-03-31 14:16:46

回答

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)在webview中返回true加载网址,不需要view.loadUrl()

2)返回false,如果您广播ACTION_VIEW意图

1

我做了一些修改,它是横幅广告可以正常使用。 我做了以下改动:

  • 如果条件有变。
  • 我回来了“如果”块作为文档说假:

如果提供WebViewClient,返回true意味着主机应用 处理的URL,而返回false意味着当前的WebView处理 的网址

@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; 
    } 
} 
相关问题