在Dart中处理不支持的浏览器的最佳方法是什么?

时间:2014-04-03 21:23:52

标签: javascript dart

某些浏览器不支持Dart,尤其是某些移动浏览器,例如Android浏览器。我想要显示“不支持”的消息,而不是剥落。

所以我们有一些JS如果它检测到所谓的不支持的设备,就会抛出一个带有“不支持”消息的DIV:

var ua = navigator.userAgent.toLowerCase();

// Android 1-4
if (/android [1-4]/i.test(ua)) {
  window.document.querySelector('#mobile-not-supported').style.display = '';
  window.document.querySelector('#application-root-container').style.display = 'none';
}

麻烦的是这显示了一些实际可行的设备。例如,在某些Android设备上,它适用于Chrome浏览器,而非股票浏览器。

这里最好的方法是什么?我甚至不确定支持的浏览器的严格列表(只有这个:https://www.dartlang.org/support/faq.html#q-what-browsers-do-you-support-as-javascript-compilation-targets)。理想情况下,JS有一种方法可以检测到应用程序的某些方面无效,并且在这些情况下只显示“不支持”消息。

1 个答案:

答案 0 :(得分:0)

我改进的解决方案是在用户代理字符串中专门查找原生Android。

var ua = navigator.userAgent.toLowerCase();

// Look for native Android browser, which Dart does not support.
var is_android = ((ua.indexOf('mozilla/5.0') > -1 && ua.indexOf('android ') > -1 &&    ua.indexOf('applewebkit') > -1) && !(ua.indexOf('chrome') > -1));
if (is_android) {
  window.document.querySelector('#mobile-not-supported').style.display = '';
  window.document.querySelector('#application-root-container').style.display = 'none';
}

将来,我可能会尝试提及supported属性@caffinatedmonkey。