2011-09-12 117 views
2

以前,在android中使用webview時,單擊任何鏈接將強制打開「正確」瀏覽器,然後在該實例中繼續瀏覽網頁。Android WebView不啓動新瀏覽器

但是,這似乎不再是這種情況。以下代碼會導致所有鏈接停留在webview中,但我實際上希望鏈接啓動一個新的瀏覽器實例。在2.3中做了這個改變嗎?

注意我問的是大多數人要求的相反(他們問如何保持網頁視圖中的所有環節,我希望他們能外推出)

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     WebView view = new WebView(this); 
     setContentView(view); 

     view.loadUrl("http://news.bbc.co.uk"); 

    } 
} 

編輯:澄清 - 第一個URL將加載在WebView中,所有後續點擊將在新瀏覽器中打開。這是我真正想要的簡化,但足夠好。

基本上問題是,以前點擊一個鏈接會打開一個新的瀏覽器會話。大多數人不希望這樣(因此在這裏有關於它的問題),但我確實需要。然而,由於某種原因,現在它似乎一直加載在webview中(2.3也許?)

回答

2

讓我明白。你想在同一個webview中啓動第一個網頁,而其他超鏈接轉到默認瀏覽器,或者你想讓默認瀏覽器本身打開第一個鏈接點擊?

如果是第一種情況,我不完全知道,除非您知道某種方式從webview收集鏈接URL。

對於第二個實例,即啓動任何URL點擊的默認瀏覽器,只需跳過(刪除)下面的這一行:view.setWebViewClient(new WebViewClient() { });,這將打開默認瀏覽器中的所有鏈接,而不是webview本身。

+0

更新了澄清。此外,如果沒有webviewclient實例(這是從我的測試中遺留下來的,不應該包含在原始文章中),它就無法工作。 – monkjack

+0

在這種情況下,我建議嘗試攔截觸摸/點擊事件,從WebView中獲取相應的URL,並推送它以引入在瀏覽器中打開網頁的意圖。 – SamSPICA

+0

這就是我不想做的,但在沒有任何其他建議的情況下,我會接受這是我唯一的行動方針。 – monkjack

0

Houps,錯誤的答案,我誤解了你的問題。 需要刪除...