更新: 感謝您的答案,但我想澄清一點,我是一個JavaScript開發人員,而不是一個Android應用程序開發人員,我需要在運行時檢測是否一個網站被裝載在Android的瀏覽器或加載應用程序的WebView中,只有JavaScript代碼檢測網站是運行在Android瀏覽器還是應用程序的webView
原題: 的Javascript如何檢測運行時在Android的瀏覽器中的網站是否被加載或應用程序的WebView中加載,當我不負責申請?
更新: 感謝您的答案,但我想澄清一點,我是一個JavaScript開發人員,而不是一個Android應用程序開發人員,我需要在運行時檢測是否一個網站被裝載在Android的瀏覽器或加載應用程序的WebView中,只有JavaScript代碼檢測網站是運行在Android瀏覽器還是應用程序的webView
原題: 的Javascript如何檢測運行時在Android的瀏覽器中的網站是否被加載或應用程序的WebView中加載,當我不負責申請?
一種解決方案可能是向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);
我認爲,用戶代理將是瀏覽器和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
做ü知道寫javascript?你有沒有做過任何嘗試? –
你可以檢查用戶代理嗎? – Shomz
你也想檢測應用程序是否在移動設備或瀏覽器上運行? –