标签: browser-detection

Vaadin中的客户端浏览器检测

我想根据用户代理为我的Vaadin应用程序设置不同的主题.特别是我想至少区分移动设备(iPhone,Android,...)和桌面网络浏览器.

Vaadin的API揭示了两个有趣的类:

BrowserInfo似乎完全按照我的需要完成工作,但是通过其get方法实现了失败:

SEVERE: javax.servlet.ServletException: ...
Caused by: java.lang.UnsatisfiedLinkError: com.vaadin.terminal.gwt.client.BrowserInfo.getBrowserString()Ljava/lang/String;
Run Code Online (Sandbox Code Playgroud)

无法找到WebBrowser从我的应用程序中访问的方法.

  1. 我是否选择了正确的浏览器区分方法?
  2. 为什么访问BrowserInfo失败?

browser browser-detection vaadin

5
推荐指数
1
解决办法
6067
查看次数

如何找出用户使用的浏览器?

我想显示一个弹出窗口,告诉用户他们的浏览器是否已过时.如何在javascript中找出他们使用的浏览器?

javascript browser-detection

5
推荐指数
2
解决办法
1万
查看次数

为什么在查看浏览器功能时会得到这些奇怪的结果?

我目前正在研究浏览器功能,并试图测试.NET 4.0附带的浏览器定义文件.为此,我使用Firefox的附加组件来更改用户代理,我有一个简单的页面报告以下内容:

Request.UserAgent
Request.Browser.Id
Request.Browser.Browser
Request.Browser.MajorVersion
Request.Browser.MinorVersion
Request.Browser.Platform
Request.Browser.IsMobileDevice
Request.Browser.MobileDeviceManufacturer
Request.Browser.MobileDeviceModel
Run Code Online (Sandbox Code Playgroud)

通常,这会根据默认浏览器定义文件中的注释中提供的示例提供正确的信息.但是,我不时会看到奇怪的结果,我无法解释.

iphone.browser定义文件中的示例iPhone用户代理为例,如下所示:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
Run Code Online (Sandbox Code Playgroud)

这应该将浏览器作为Safari返回.这取决于将Safari作为父级的IPhone网关,它与术语相匹配Safari.

稍微更改用户代理以便在iPhone上模拟邮件客户端的用户代理意味着删除用户代理的末尾部分,如下所示:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko)
Run Code Online (Sandbox Code Playgroud)

现在应该将Mozilla作为浏览器返回,因为它无法匹配该术语Safari.但是,在第一次报告错误信息后立即对此进行分析,仍然表明浏览器是Safari.

添加自定义.browser文件与App_Browsers文件夹,然后修改它似乎迫使它暂时正确,几乎像定义或规则被缓存,并没有完全运行每个请求.

这也是另一种方式,如果你从第二个示例用户代理开始,那么在分析第一个用户代理时,它将报告为Mozilla而不是Safari.

任何人都可以解释这种行为或解决方法吗?它是否尝试进行某种(不那么)聪明的缓存,它根据类似的用户代理进行假设?

谢谢.

browser asp.net user-agent browser-detection

5
推荐指数
1
解决办法
1225
查看次数

在JS中发现特定的手机型号

我知道用户代理嗅探不是一种万无一失的方法,因为过多的设备日常发布,但我需要一种方法来获取用户正在访问的精确手机型号我的网站,以指导他/她到相应的帮助区域/文档.

诸如http://detectmobilebrowsers.com/之类的工具允许您检测移动设备,浏览器,操作系统等,但是有什么东西可以拿起您正在使用的特定手机型号(使用Javascript)吗?比如iPhone 4s

谢谢你的任何想法.

javascript mobile user-agent browser-detection

5
推荐指数
1
解决办法
2819
查看次数

检测移动设备浏览器,而不仅仅是屏幕宽度

我知道我可以使用媒体查询激活一些样式,如下所示:

/* Magic for mobile devices */
@media (max-width: 33em ) 
{
}
Run Code Online (Sandbox Code Playgroud)

但是我不太喜欢这种方法,因为它仅检查屏幕宽度。我找到了java script用于检测移动浏览器的代码,现在我需要进行相同的检查CSS

if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {
        // some code..
}
Run Code Online (Sandbox Code Playgroud)

CSS相当于这个js的吗?

css browser-detection mobile-devices

5
推荐指数
1
解决办法
8143
查看次数

如何在 Javascript/Angularjs 中检测用户来自何处的 url?

我想检测进入我网站的用户的原始网址(例如稍后执行某些操作)。这可以使用角度来实现吗?

javascript url location browser-detection angularjs

5
推荐指数
1
解决办法
2383
查看次数

Edge的App_Browsers定义文件

我正在尝试为Asp.Net中的Edge编写一个浏览器定义文件,以避免将其标识为"Chrome 46".

我在Edge.browser文件App_Browsers夹中创建了以下文件:

<browsers>
  <!--Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586-->      
  <browser id="Edge" parentID="Chrome">
    <identification>
      <userAgent match="Edge" />
    </identification>
    <capture>
      <userAgent match="Edge/(?'version'(?'major'\d+)(\.(?'minor'\d+)?))" />
    </capture>
    <capabilities>
      <capability name="browser" value="Edge" />
      <capability name="version" value="${version}" />
      <capability name="majorVersion" value="${major}" />
      <capability name="minorVersion" value="${minor}" />
    </capabilities>
  </browser>
</browsers>
Run Code Online (Sandbox Code Playgroud)

这很好地匹配Edge,但是如果使用Chrome向网站发出另一个请求,浏览器也会匹配为Edge:S

我究竟做错了什么?

.net user-agent browser-detection microsoft-edge

5
推荐指数
1
解决办法
855
查看次数

检测ios谷歌应用程序

我在 Google 应用程序中遇到 FB 登录流程问题。目前,对于某些移动浏览器,我遵循重定向身份验证流程。

像这样:var w = window.open("https://m.facebook.com/dialog/oauth?....", "_blank", ...)

w变量undefined在 iOS 的Google 应用程序中 ,所以我只想对这种情况使用另一种策略。您能帮我了解如何检测此浏览器吗?(使用userAgent或其他东西)

或者也许有人可以帮助制定针对这种情况的最佳 Facebook 身份验证策略

javascript browser facebook browser-detection ios

5
推荐指数
0
解决办法
203
查看次数

如何检查浏览器是否支持扩展?

我为我的网站编写了一个 chrome 扩展,但发现扩展在 chrome 的移动浏览器上不起作用。现在,该网站会检查用户是否安装了扩展程序。如果用户不这样做,网站会要求用户通过内联安装来安装扩展。

问题是,如果用户在移动设备上运行 chrome,我不想提示用户安装扩展程序,因为它不起作用。我想检查浏览器运行扩展的能力,而不是移动设备的用户代理嗅探。Modernizr 似乎没有对此进行检查。有任何想法吗?

browser-detection google-chrome-extension modernizr

5
推荐指数
1
解决办法
269
查看次数

如何根据支持的列表检查当前浏览器

我们有一个用于测试我们的 web 应用程序的浏览器列表。如果他的浏览器不受支持或测试与我们的应用程序兼容,我有一个任务通知用户。

我们browserslist在项目中有一个配置,我正在寻找一种方法来根据列表测试当前浏览器。我试过browserlist-useragent,但我们不能用的WebPack编译它,由于它使用的事实netfstls我们不希望在我们的包,包括和其他本地节点模块。

有没有更好的方法可以避免在许多不同的地方复制受支持的浏览器列表,而只使用已经存在的浏览器列表配置来检测用户是否使用受支持的浏览器?

browser browser-detection webpack

5
推荐指数
1
解决办法
1034
查看次数