标准的方式来探测移动浏览器中的一个网应用基于http请求
-
02-07-2019 - |
题
我们都开始向下走的路径移动浏览器支持对企业的电子商务网络应用程序(Java/Servlet基础)。当然还有许多作出的决定,但它似乎对我的基石是能够可靠地探测移动浏览器,并作出决定内容的回应。是否有一个标准的方式来作出这一决定(迅速)基于http请求,理想的情况搜集更多的信息给定的浏览器和设备的请求(屏幕上的大小、html能力,等等?).
我还赞赏任何补充信息,将使用来自某人已经走上这条道路采取现有大型企业网络应用程序和建筑师-ing出移动浏览器支持从发展侧面。
[编辑]我当然理解请求头和信息有关数据库的标准用户的代理是一个很大的帮助。对于那些谈论"其他"请求头的性质,如果你可以包括类似的标准化名称/资源的价值,这将是一个很大的帮助。
[编辑]几个用户提出的解决方案,涉及在导线到一些网服务,将做检测。而我敢肯定这一工作,它不是一个很好的解决方案的一个企业的电子商务网站的原因有两个:1)的速度。一个呼叫通过网页的请求第三方将有巨大的性能产生影响。2)依赖关系/合法的。我们会配合我们的网站的反应时间和关键功能要他们的服务,这是可怕的法律和风险的原因。
解决方案
标准方法不是检查用户代理吗?这是一个用户代理数据库,可用于检测移动浏览器。
其他提示
@ David的回答提到使用WURFL - 这可能是你最好的选择。但是,预先警告,成功率通常在60%左右(来自我和其他人的经验)。由于运营商不断更改UA以及存在的设备配置文件数量(60,000 +?),因此无法获得所需的所有正确数据。
在严重依赖设备数据库之前,只需要一点警告。我会尝试保持用户的选项打开,允许他们更改会话选项,以防我猜错了。
您可以使用 Modernizer 来检测浏览器功能
虽然你可以检测移动通过浏览器这是用户代理的浏览器战争的平台电脑已经显示出,嗅用户代理不是真的这样一个好的事情要做。
什么理想情况下应该做的是,特定的风格应该被应用基于媒体类型或者不同的答案应被发送根据一个头比其他用户的代理,如接受头讲述这样的内容,浏览器喜欢。
现在它可能足以代码一个网站,作的iPhone和Opera通过浏览器嗅-但是谷歌安卓来的任何一分钟,现在有许多其他移动电话,这将有浏览器的功能靠近的iPhone的在不久的将来,这将是一个废弃物开发的移动网站没有支持这些设备如能被从头开始。
经过几天寻找正确检测移动设备的方法后,我决定保持简单[愚蠢],我将在我的索引页面上放置一个“移动设备网站”按钮....它只需点击一下远!!
检测移动浏览器 - 各种编程语言的摘录。
以下轻量级Apache配置做得非常好,如果他们更喜欢PC版本,则会记住用户偏好
<VirtualHost (your-address-binding)>
(your-virtual-host-configuration)
RewriteEngine On
RewriteCond %{QUERY_STRING} !ui=pc
RewriteCond %{HTTP_COOKIE} !ui=pc
RewriteCond %{HTTP_USER_AGENT} "^.*(iphone|ipod|ipad|android|symbian|nokia|blackberry| rim |opera mini|opera mobi|windows ce|windows phone|up\.browser|netfront|palm-|palm os|pre\/|palmsource|avantogo|webos|hiptop|iris|kddi|kindle|lg-|lge|mot-|motorola|nintendo ds|nitro|playstation portable|samsung|sanyo|sprint|sonyericsson|symbian).*<*>quot; [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "^(alcatel|audiovox|bird|coral|cricket|docomo|edl|huawei|htc|gt-|lava|lct|lg|lynx|mobile|lenovo|maui|micromax|mot|myphone|nec|nexian|nook|pantech|pg|polaris|ppc|sch|sec|spice|tianyu|ustarcom|utstarcom|videocon|vodafone|winwap|zte).*<*>quot; [NC]
RewriteRule /(.*) http://bemoko.com/$1 [L]
RewriteCond %{QUERY_STRING} "ui=pc"
RewriteRule ^/ - [CO=ui:pc:(your-cookie-domain):86400:/]
RewriteCond %{QUERY_STRING} "ui=default"
RewriteRule ^/ - [CO=ui:default:(your-cookie-domain):86400:/]
</VirtualHost>
更多背景信息@ http://bemoko.com /training.team/help/team/pc-to-mobile-redirect
我建议一个基于uaprof和用户代理的免费检测系统: http://www.mobilemultimedia.be UAprof应该是检测的主要密钥,因为通常有多个用户代理用于相同的uaprof。如果你想自己管理,你应该去Wurfl,因为你可以自己下载整个数据库并在本地管理它。
当我最近有类似的需求时,我发现此代码使用 HTTP_X_WAP_PROFILE
, HTTP_ACCEPT
和 HTTP_USER_AGENT
将浏览器标识为移动或非移动。这是PHP,但可以很容易地转换成你需要的任何东西(我在VBScript中为经典ASP实现它)。
具有讽刺意味的是,事实证明我并没有最终使用该代码,因为我们决定为移动和非移动用户提供特定的URL,但是当我测试它时它确实有用......
您将从请求标头中获取大部分信息,如浏览器,设备,接受的语言,接受的格式等。上面提到的用户代理是请求标头的一部分。
好的,这是一个非常简单的答案 - 如何让用户决定?登录您的ap时,请提供指向移动网站的链接。在移动网站上,提供“返回主站点”的链接。 - 在你的移动设备上试试www.fazolis.com - 他们做得很好。
然后,在浏览器网站的移动网站链接上,注册他们的“投票”。和他们的用户代理。您可以构建自己可靠的 YOUR 客户列表,这些客户需要移动网站。使用这与这些移动设备的屏幕尺寸规格相结合,您可以构建一些非常好的逻辑,以获得满意的用户体验。我绝不会向网络资源发布与此类似的基本信息。
哦,在你的“移动网站”上 - 如果您在语义上写得很好,那么您应该能够为移动设备和浏览器提供单个站点,而不必编写两个单独的页面集。只需考虑一下 - 这值得额外的思考和努力以节省时间。
我在这里看不到它,但我目前正在研究的另一个选择是 www.detectmobilebrowser.com 一>
最简单的方法是使用与移动浏览器关联的常规标记创建数组。至少大多数移动用户代理必须有单词mobile,mini,nokia,java ME,android,iphone,mobile OS等。如果有任何与用户代理匹配,使用php strpos,在页面顶部打印移动按钮。让用户选择。我喜欢完整的网站我的移动浏览器给了我相同的体验,除了我需要缩放或滚动大部分时间。
您必须使用之前定义的列表检查用户代理字符串,喜欢这个一个
您可以使用网络服务来检测mobiledetection.com等移动浏览。
事实是,仅依靠useragent并不足以检测移动浏览器。
当然,几年前你可以搜索某些字符串并猜测它是诺基亚还是什么东西,但是现在有那么多手机,还有很多人假装是那些不那么复杂的东西需要。
我在链接文字上找到了一个很棒的网站,该网站基于MTV用于所有移动网络的相同解决方案站点。它真的很好,因为它有一个独立于设备的标记语言,但更重要的是它们为isMobileDevice()提供web服务调用。
只需查看手册,然后“工作原理”。
我一直在将它用于我的客户网站,并且还没有找到它无法准确检测到的移动浏览器。完全致盲!
使用这些内容浏览移动网络上的设备和功能检测内容:
- 使用设备和功能检测来改善移动网络上的用户体验
- 设备检测简介
- 移动网站设计方法
- 什么都不做
- 提供通用移动网站
- 设计移动和适应性
- 内容适应和设备分组策略
- 设备分组
- 内容改编
- 首先尽量减少适应的需要
- 设备检测的常用方法
- 服务器端适应
- 客户端改编
- 服务器端用户代理(UA)和标头查找
- 服务器端UA字符串与设备数据库查找相结合
- 服务器端用户代理配置文件(UAProf)检测
- 基于JavaScript技术的检测
- CSS媒体类型
- CSS媒体查询
- 其他最佳做法
- 重定向+手动链接
- 目标网页+手动链接
- 可下载的样本页 醇>