2012-04-25 69 views
0

我有一個顯示WebView的應用程序,它顯示包含街道地址(如「123 Main St.,Citytown,NY」)的信息。但是,如果點擊了這些地址中的任意一個,則會短暫突出顯示,並啓動Google地圖應用的常見瀏覽器行爲。在Android設備上,如何防止地址啓動地圖應用程序?

我想阻止這種行爲發生,因爲有些地址不是可選擇的。有什麼我可以做的嗎?


更新:

一個評論者叫我貼上一個例子HTML片段觸發的行爲。

<hgroup class="unit list_item_body"> 
    <h2 class="thick truncated heading"> 
    <a href="/locations/1234">Foobar</a> 
    </h2> 
    <h3 class="truncated subheading"> 
    123 East Market St., Charlottesville, VA, 22902 
    </h3> 
</hgroup> 

請注意,地址上沒有鏈接。不過,點擊地址會觸發啓動Google地圖的行爲。無論我是通過WebView訪問網站還是查看網站本身,都會發生這種情況。

+0

如果它可以通過JavaScript代碼來完成,你可以試試這個:http://stackoverflow.com/questions/8533187/add-javascript-into -webview – vorrtex 2012-04-25 11:54:54

回答

2

我想通了這一點。這個元標記將阻止瀏覽器劫持,從地址字符串控制:

<meta name="format-detection" content="address=no"> 
0

看看WebViewClient.shouldOverrideUrlLoading

webView.setWebViewClient(new WebViewClient() { 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     boolean shouldHandle = true; 
     //Check if you want to override the loading of the URL and set shouldHandle accordingly 
     return shouldHandle ; 
    } 
}); 
+0

嗯......這看起來不對。當點擊地址與父容器時,沒有不同的URL被調用。 – 2012-04-25 13:14:36

+0

當你說「某些地址不能被選擇時」,你如何區分應該選擇什麼和不應該怎樣? – Rajesh 2012-04-25 13:18:59

+0

他們都不應該是「可選擇的」,因爲他們應該去Google地圖。例如,如果有活動場地的列表與他們的地址,點擊任何場地或地址將帶您到活動場地頁面。但在這種情況下,如果您碰巧點擊搜索結果的地址部分,則會將您帶到Google地圖,這是我想避免的行爲。那有意義嗎? – 2012-04-25 13:21:22

相關問題