2012-10-04 16 views

回答

0

我遇到同樣的問題。當我點擊運行4.1.1的Asus Transformer TF700中的WebView中的Google搜索結果時,我會看到「about:blank」頁面。這不會發生在我的宏基A100平板電腦或其他手機。

我注意到在Google搜索頁底部從平板電腦切換到經典版時,結果鏈接可以正常工作。

https://www.google.com/?nota=1

如果去掉?在上面的URL諾塔= 1,你不會看到在您的PC平板選項。然而,在您的平板電腦中,默認的google.com網址會在底部顯示平板電腦選項。

如果您在搜索結果頁面中使用nota = 1,則鏈接將起作用。就像這樣:

http://www.google.com/search?nota=1&q=amazon

我知道這是不完美的。我們希望Google搜索結果頁面的默認鏈接有效。谷歌在華碩變壓器似乎不喜歡的平板電腦版上做了一些時髦的事情!

我會發佈一個更新,當我弄清楚是什麼導致了這一點。哦!與Android的樂趣:)

0

我看了一下你的Vuwize應用程序。不是直接將www.google.com嵌入到WebView中,而是似乎擁有自己的搜索表單,運行Google搜索,然後自己渲染結果頁面。這可以解釋您的問題,因爲來自Google的搜索結果中的結果鏈接不是直接鏈接到原始頁面的鏈接。要更多地瞭解您的問題,有必要了解您究竟在做什麼以及如何從服務器端運行Google搜索。

如果你只是嵌入www.google.com的WebView中直接像這樣:

setContentView(R.layout.main); 

    mWebView = (WebView) findViewById(R.id.webview); 

    mWebView.getSettings().setJavaScriptEnabled(true); 

    mWebView.loadUrl("http://www.google.com"); 

    mWebView.setWebViewClient(new HelloWebViewClient()); 

用戶可以輸入搜索直接進入谷歌和獲得的結果頁,其中的鏈接都是在同一個網頁視圖點擊。

+0

謝謝你的回覆SSGG。我沒有使用任何自定義窗體。我所做的就是你上面發佈的內容,除了一件事。我不是在加載時直接在webview中加載google.com網址。如果用戶在我的url框中輸入正確的url,那麼我要求webview以其他方式導航到該url,我要求webview加載「http://www.google.com/search?q=「 –

+0

但是,在用戶直接在url框中輸入google.com並搜索某些內容的情況下,我看到這個空白頁問題......或者我將用戶帶到上面的url與搜索詞。令人驚訝的是,當我從手機上試用這款應用程序時,我沒有看到這個空白頁面的問題,但是當我從平板電腦上試用這個應用程序時,問題依然存在。 –

2

這是另一種解決方案。在Google完成加載空白頁面之後,使用WebView標記或成員變量將WebView加載到上一頁(這是實際結果)。就像這樣:

@Override 
public void onPageFinished(WebView view, String url) 
{ 
    System.out.println("onPageFinished: " + url); 
    if ("about:blank".equals(url) && view.getTag() != null) 
    { 
     view.loadUrl(view.getTag().toString()); 
    } 
    else 
    { 
     view.setTag(url); 
    } 
} 

這裏是我的logcat:

I/System.out(13182): onPageFinished: http://www.google.com/#hl=en&sugexp=les%3B&gs_rn=1&gs_ri=tablet-gws&cp=2&gs_id=9&xhr=t&q=amazon... 
I/System.out(13182): onPageFinished: http://www.amazon.com/ 
I/System.out(13182): onPageFinished: about:blank 
I/System.out(13182): onPageFinished: http://www.amazon.com/ 
0

這裏的另一種解決方案來處理空白頁引起了果凍豆。我發現了2個導致空白頁面的URL。覆蓋loadUrl(String)並且根本不加載它們。

@Override 
public void loadUrl(String url) 
{ 
    if (url != null && !(url.startsWith("file:///android_asset") || "about:blank".equals(url))) 
    { 
     super.loadUrl(url); 
    } 
} 
1

我想添加爲斯坦德克薩斯的答案評論,但我沒有足夠的代表處點...

我在一箇舊片(LG擎天柱選項卡測試/ DoCoMo L-06c/T-Mobile G-Slate/Rogers LG V909)運行Honeycomb(3.1),我的WebView在Google網站上遇到同樣的問題。

當瀏覽到www.google.com時,Google自己的瀏覽器工作得很好,但當我在我的應用程序的WebView中使用該URL時,鏈接全部是「about:blank」。 0_o

因此,如果用戶想要去谷歌的搜索頁面,我重寫URL,如下所示:

//get the url from the user.. 
inUrl = urlAddressEditText.getText().toString(); 
// make sure it's properly formatted... 
... 
// then add the "/?nota=1&" if it's a Google domain. 
String outUrl = inUrl.replaceFirst("(www\\.google\\..*/?)(\\??)", "$1/?nota=1&"); 
webView.loadView(outUrl); 

到目前爲止,這工作,但我還沒有測試它的每一個場景。

相關問題