某些浏览器不支持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有一种方法可以检测到应用程序的某些方面无效,并且在这些情况下只显示“不支持”消息。
答案 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。