【问题标题】:Is there a way to detect the new IE version on Windows Phone 8.1 Update 2?有没有办法在 Windows Phone 8.1 Update 2 上检测新的 IE 版本?
【发布时间】:2016-01-12 16:44:06
【问题描述】:

Windows Phone 的每次更新都会为内部 Internet Explorer 带来新的功能/错误。

我们想知道一种检测 8.1 Update 2 (GDR2) 的方法。

大概有一个特性或错误可以被嗅探到:

  1. 添加到 GDR2 的功能,或

  2. GDR1 中的一个错误现已在 GDR2 中修复,或者

  3. 检测添加到 GDR2 的错误(不稳定的嗅探,由于错误可能会被修补,因此不太理想)。

注意微软给出的changelist。另请注意,尽可能使用特征检测,但仍需要嗅探,因为:(1)您不能总是找到检测特征/错误的方法(一些 CSS 错误,一些需要用户交互的错误),以及(2)我们想要使用异常日志和其他记录信息记录浏览器版本(以便我们可以找到问题的模式),以及 (3) 我们希望在一个地方显示任何设备的版本,以便我们的用户可以轻松地向我们报告(没有我们要求他们进入设备特定设置等)。

【问题讨论】:

  • 检测 WP8.1 上的 IE11 和 WP8.1 Update 1 之间差异的方法是 8.1 Update 1(以及 Update 2,但不支持 WP10 上的 IE11)支持 document.ontouchstart可以使用'ontouchstart' in window 进行测试。 但是请注意,Windows Phone 10 (10.0.10586) 上的应用程序在使用 WebView 时会再次恢复(WebView 使用 IE11 和 'ontouchstart' in window === false!!! Arrrgggh)。您可以在用户代理中检查“Windows Phone”、“Trident/8.0”和“WebView/2.0”是否存在,以检测 Windows 10 Mobile。

标签: javascript windows-phone-8.1 internet-explorer-11


【解决方案1】:

编辑:Here 是检测不同 Windows Phone 更新的示例代码(用于更新 1、2 和 10。您可以 edit javascript。)

在更新 2 中,他们似乎删除了对 2011 样式 flexbox(带有 ms 前缀)的支持,可以通过以下代码对其进行测试:

'msFlexAlign' in document.documentElement.style

这对于 Internet Explorer 11 Mobile Update 1 返回 true,对于 IE11 Update 2 返回 false。Here 是一个 jsbin 测试。

注意,我通过使用 Modernizr 3 cow tests 并比较 Results for update 1Results for update 2 发现了这一点。只有一个区别,flexboxtweener 的值由 true 变为 false。

编辑:如果您需要检测 Update 1,那么检测 WP8.1 上的 IE11 和 WP8.1 Update 1 之间差异的一种方法是 8.1 Update 1(以及 Update 2)支持 document.ontouchstart可以在窗口中使用“ontouchstart”进行测试。但是请注意,如果使用 WebView,Windows Phone 10 (10.0.10586) 上的应用程序会再次恢复(WebView 使用 IE11 和窗口中的“ontouchstart”=== false!!! Arrrgggh)。

编辑:如果在为 Windows Phone 10(Windows 10 Mobile 10.0.10586)上的目标 WP8.1 编译的应用程序中使用 WebView,则它使用 IE11,而应用程序不使用 Microsoft Edge! WTF:该版本的 IE11 为 'msFlexAlign' in document.documentElement.style 返回 true,因此更新 1 和更新 2 的更改似乎在 WP10 中丢失或恢复 - 哎哟。您可以在 WP10/W10M(更新 3 ;-|)上检测到 IE11,因为它在用户代理中具有“Trident/8.0”,而 WP8.1 上的 IE11 具有“Trident/7.0”。如果用户代理包含“WebView/2.0”(尽管https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx 也提到“MSAppHost”),您可能只会寻找差异。如果使用设置 | 可能会发生其他事情桌面模式(在其他更改中删除了“Windows Phone 8.1”并将“WPDesktop”添加到用户代理),或者如果使用 X-UA-Compatible 将文档模式更改为

【讨论】:

  • 注意我也尝试测试老挝语言支持jsbin.com/hamoye,但是 toLocaleDateString() 在 GDR1 中已经支持老挝语。 html5test.com 的 GDR1 和 GDR2 得分均为 346。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
相关资源
最近更新 更多