检测网站是在应用的 Android 浏览器还是网页视图中运行
Detect whether a website runs in Android browser or webView of an app
更新:感谢您的回答,但我想澄清一下,我是一名 JavaScript 开发人员,而不是 android 应用程序开发人员,我需要在运行时检测网站是加载到 Android 浏览器中还是加载到应用程序的 WebView 中,只能通过 javascript 代码
原始问题:当我不负责应用程序时,Javascript 如何在运行时检测网站是加载到 Android 浏览器中还是加载到应用程序的 WebView 中?
我相信
浏览器和网络视图的用户代理都是相同的,因此不会区分。
但是,您可以做的是尝试将javascript代码绑定到android代码并调用它。如果成功,则在 Web 视图中运行,如果失败,则在浏览器中运行。
有关如何执行此操作的详细信息,请参阅:
http://developer.android.com/guide/webapps/webview.html#BindingJavaScript
示例(Java/Javascript 可能不正确):
@JavascriptInterface
public void userAgentDetect() {
WebView = true;
}
将 WebView 变量设置为 false,然后尝试运行该函数。
然后检查该 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);
相关文章:
- 如何解码阿拉伯语的html内容以在android网页视图中显示
- 安卓网页视图位置重定向
- 在网页视图中显示安卓资产图像文件
- 网页视图后退按钮
- 如何确定网站是在 iPhone/Android 浏览器上打开的,还是从 iPhone/Android 应用程序网页视图打
- 如何在安卓网页视图中拆分网页
- Android 网页视图中的谷歌地图
- 检测网站是在应用的 Android 浏览器还是网页视图中运行
- Chrome 扩展程序上的 Chrome 应用网页视图行为
- 网页视图片段:后退按钮和下载侦听器
- 为什么不触发 Android 网页视图的可见性更改事件
- 打开虚拟键盘时,我的应用程序网页视图不会缩小
- 在android网页视图中的捏手势
- 如何运行一个javascript在网页上的网页视图Android
- 自动跳转到网页视图的某个部分
- 获取iOS 10中网页视图的高度
- Android-将值从应用程序传递到网页视图页面不起作用
- 必须创建网页,必须适应网页视图&移动视图
- 如何对网页视图的内容进行查询选择器
- 科尔多瓦/Phonegap 3.4.0 iOS 7.1 - 键盘/网页视图问题