Meg*_*Nun 3 html javascript android webview uiwindow
我有一个html-javascript
页面,我需要检测它何时在Web视图上打开(例如在facebook webview,twitter webview等内部),以及是否是webview-显示其他内容。
注意:我无法控制第三方Android应用程序,因此无法更改其代码。
我已经找到了一种检测IOS Web视图的方法(在stackoverflow上找到它):
var isIosWebview =/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)
现在,我正在寻找可以检测Android Web视图的JavaScript代码。
救命?
您不能仅使用用户代理字符串来检测到它,因为任何使用WebView的应用程序都可以将UA字符串设置为所需的任何字符串。
如果您仍然坚持使用UA字符串,则这是官方文档的解释:最初,基于Chromium的WebView被.0.0.0
用作Chrome版本后缀;在较新版本中; wv
,已将其添加到UA字符串的平台部分。请注意,KitKat之前的WebView没有该Chrome
部分。查看有关此内容的旧文章:Android,Webview用户代理与浏览器用户代理
WebView参与的另一个提示是存在X-Requested-With
带有应用程序包名称的HTTP标头。请注意,此标头也是由XMLHttpRequest设置的,因此您需要查找标头的实际值。
WebView不支持iframe的说法不正确。
小智 5
该线程中其他人提供的信息为我提供了在我的案例中解决此问题所需的信息。对于其他人,这里是生成的 JS 正则表达式,它代表接受的答案中描述的检测:
/(Version\/\d+.*\/\d+.0.0.0 Mobile|; ?wv|(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari))/i.test(navigator.userAgent)
Run Code Online (Sandbox Code Playgroud)
正则表达式包括旧 Android、新 Android、iOS 版本的情况。
归档时间: |
|
查看次数: |
8999 次 |
最近记录: |