Javascript如何檢測網站是在Android的股票瀏覽器中加載還是在另一個應用程序的WebView中加載?我想在這兩種情況下運行稍微不同的代碼。在Android瀏覽器或WebView內部檢測
回答
活動 - >的onCreate
this.webView.getSettings().setUserAgentString(
this.webView.getSettings().getUserAgentString()
+ " "
+ getString(R.string.user_agent_suffix)
);
RES - >值 - >的strings.xml
<string name="user_agent_suffix">AppName/1.0</string>
的Javascript
function() isNativeApp {
return /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
這是來自http://developer.android.com/guide/webapps/webview.html#EnablingJavaScript –
的官方推薦方式@MarvinEmilBrach,如果您在web視圖中使用社交媒體身份驗證,則無法正常工作。它將失去Javascript界面 – user516883
只有當你也是Android應用程序開發人員時,這是可行的,但如果你無法更改頁面將運行的應用程序源代碼,它將不起作用。當然,除非您聯繫應用程序開發人員,並且他們同意爲您在Android代碼中進行更改。 –
您可以檢查被請求,看它是否是從您的應用程序來的頁面上的服務器變量,並相應
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app")
echo 'var isAndroidApp=true;';
else
echo 'var isAndroidApp=false;';
- 設置一個javascript變量,你的包名稱替換com.company.app
- 1. 檢測Xoom瀏覽器(Android)
- 2. 禁用webview瀏覽器測試儀(android)
- 3. 如何檢測使用Android瀏覽器或Android本機WebView客戶端
- 4. WebView和外部瀏覽器
- 5. 如何使用JavaScript檢測瀏覽器是否爲android webview?
- 6. Android模擬器瀏覽器檢測
- 7. 瀏覽器檢測
- 8. 瀏覽器檢測
- 9. 瀏覽器檢測
- 10. 瀏覽器 - 檢測瀏覽器關閉或標籤接近
- 11. 瀏覽器檢測部件與瀏覽器的建議
- 12. 瀏覽器版本或錯誤檢測
- 13. 檢測:從捲曲或瀏覽器
- 14. 如何在iphone和android中檢測應用內瀏覽器?
- 15. PHP瀏覽器內檢測的Javascript
- 16. 瀏覽器內部的瀏覽器
- 17. 檢測默認的Android瀏覽器Wurfl
- 18. Javascript檢測android原生瀏覽器
- 19. Android中的瀏覽器檢測
- 20. Android Webview vs Android Chrome瀏覽器
- 21. 如何檢測使用javascript在webview或瀏覽器中打開的網站
- 22. 如何檢測Android瀏覽器但不是Android應用程序(WebView)?
- 23. 檢測網站是運行在Android瀏覽器還是應用程序的webView
- 24. 如何檢測瀏覽器內部JavaScript錯誤?
- 25. 如何檢測移動設備的瀏覽器內部寬度
- 26. 用android webview在瀏覽器中打開外部鏈接
- 27. 在webview的外部瀏覽器中打開廣告android
- 28. 檢測寬度vs檢測瀏覽器
- 29. 瀏覽器檢測與功能檢測
- 30. 檢測WebView內部的可用內存
檢查webview用戶代理是否與Android股票瀏覽器不同。你可以通過訪問這個網站很容易地檢查它。 http://whatsmyuseragent.com/然而,我相當肯定用戶代理將完全相同,在這種情況下,我不知道。 – Caimen
除非您是有問題的WebView的創建者。在這種情況下,我認爲你可以爲用戶代理放置任何你想要的東西。 – FoamyGuy
如果你負責應用程序,你可以在加載頁面時發送一個特定的用戶代理,然後使用上面的Caimen的建議?使用[WebView的setUserAgentString](http://developer.android.com/reference/android/webkit/WebSettings.html#setUserAgentString(java.lang.String))函數,您可以設置特定的用戶代理,然後將用戶JavaScript檢測差異。 – mopsled