2013-03-11 112 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; 
    } 
} 
相關問題