2014-12-29 96 views
4

更新: 感謝您的答案,但我想澄清一點,我是一個JavaScript開發人員,而不是一個Android應用程序開發人員,我需要在運行時檢測是否一個網站被裝載在Android的瀏覽器或加載應用程序的WebView中,只有JavaScript代碼檢測網站是運行在Android瀏覽器還是應用程序的webView

原題: 的Javascript如何檢測運行時在Android的瀏覽器中的網站是否被加載或應用程序的WebView中加載,當我不負責申請?

+0

做ü知道寫javascript?你有沒有做過任何嘗試? –

+2

你可以檢查用戶代理嗎? – Shomz

+0

你也想檢測應用程序是否在移動設備或瀏覽器上運行? –

回答

1

一種解決方案可能是向WebView用戶代理添加某些內容,因此沒有特殊標識符的任何其他內容都會來自其他地方。

您可以更改WebView用戶代理是這樣的:

//get current user agent 
String userAgent = myWebView.getSettings().getUserAgentString();  
//add something 
userAgent = userAgent + " my_website_is_in_a_webview";  
//save the new user agent 
myWebView.getSettings().setUserAgentString(userAgent); 
2

我認爲,用戶代理將是瀏覽器和web視圖,這樣不會有什麼區別兩者是相同的。

然而你可以做的是嘗試綁定JavaScript代碼到android代碼並調用它。如果它成功,那麼它在webview中運行,或者如果它失敗,那麼它在瀏覽器中。

有關如何做到這一點詳細信息請參閱:

http://developer.android.com/guide/webapps/webview.html#BindingJavaScript

例(Java/JavaScript可能是不對的):

@JavascriptInterface 
public void userAgentDetect() { 
    WebView = true; 
} 

設置web視圖變量設置爲false然後嘗試運行該功能。

然後檢查WebView布爾值以確認它是否在應用程序或瀏覽器中。

編輯:這裏是另一個例子: Detect inside Android Browser or WebView

相關問題