我想知道移动设备上的 Ubuntu Web 浏览器应用程序具有哪个用户代理字符串(UA),以及这对现有网站有何影响?
例如,大多数网站是否能正确使用它?如果某些网站无法使用它,是否有某种后备 UA?
答案1
当前默认的 UA 字符串形式如下:
Mozilla/5.0 (Ubuntu; <formFactor>) WebKit/<webkitVersion>
其中<formFactor>
是Mobile
、Tablet
或之一Desktop
,且<webkitVersion>
是 WebKit 渲染引擎的版本(目前为537.21
)。
因此在手机上,当前默认的 UA 字符串是:
Mozilla/5.0 (Ubuntu; Mobile) WebKit/537.21
此默认 UA 字符串故意设得很短,其理由是基于Mozilla 的 B2G UA 字符串研究。
众所周知,许多网站和网络应用程序无法很好地兼容此默认 UA(如今的网站进行了大量极其复杂的服务器端 UA 解析,以推断平台功能并相应地提供定制内容)。
为了解决这些问题,Ubuntu Touch 浏览器嵌入了一种覆盖机制,允许覆盖给定域名的默认 UA(通常添加令牌Android
可以让我们获得正确的内容,尽管这通常会以安装原生 Android 应用程序的烦人提示为代价,这当然不适用于该平台)。此机制是一种短期解决方法。正确的长期解决方案是宣传,用户和开发人员与网站作者取得联系,要求他们的页面和应用程序识别我们的默认 UA 字符串并提供足够的内容。
请注意,在不久的将来,我们将从 QtWebKit 切换到氧化物(薄薄一层在Chromium 内容 API) 作为渲染引擎,这意味着渲染和功能将与 Chrome 几乎相同。为了反映这一点并增强与现有网站的兼容性,我们需要更新默认 UA 字符串(它将更接近 Chrome 在设备上的默认 UA)。
答案2
Ubuntu Touch UA是:Mozilla/5.0 (Ubuntu; $FormFactor) WebKit/$WebKitRev
变量$FormFactor
为“Mobile”或“Tablet”,包含$WebKitRev
WebKit 引擎的版本。此外,主要版本“5.0”可能会随时间而变化。
请注意,现代浏览器的 UA 可以通过插件或简单的重新配置进行更改;此外,作为开发人员,您应该知道 SEO 不喜欢基于用户代理的内容。如果你需要识别用户代理不进行完全匹配(“A”==“A”),而是对子字符串进行子字符串搜索Ubuntu
和(Mobile
或者 Tablet
) 以防止与未来版本的移动软件出现兼容性问题。
请注意,Ubuntu Touch 的移动浏览器可以实时更改 UA 以修复(显然)一些不兼容性:下次不要只依赖该机制。祝
您有美好的一天,
如果您有更多问题请告诉我们。
来源:daker.me
答案3
有一种更简单的方法可以检查任何浏览器发送的用户代理字符串。您只需访问http://www.murl.mobi/headers.php此页面提取并显示 HTTP 请求标头。最近有一篇关于使用 python 进行用户代理分析提供一种编程方法来分析网络服务器看到的实际用户代理字符串。