簡體   English   中英

檢測網站是在Android瀏覽器中運行還是在應用程序的webView中運行

[英]Detect whether a website runs in Android browser or webView of an app

更新:感謝您的回答,但我想澄清一下我是一名javascript開發人員而不是Android應用程序開發人員,我需要在運行時檢測網站是在Android瀏覽器中加載還是加載到應用程序的WebView中,通過JavaScript代碼

原始問題:當我不對應用程序負責時,Javascript如何在運行時檢測網站是在Android瀏覽器中加載還是加載到應用程序的WebView中?

我相信瀏覽器和webview的用戶代理將是相同的,因此無法區分。

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

有關如何執行此操作的詳細信息,請參閱:

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

示例(Java / Javascript可能不正確):

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

將WebView變量設置為false然后嘗試運行該函數。

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

編輯:這是另一個例子: 在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM