我正在创建一个实现AppCache和Service worker的Angular Web应用程序。我的应用程序启用了服务工作者,因此我的应用程序在除Internet Explorer之外的所有浏览器上都能正常运行。如果应用程序在IE上运行,我需要一种方法来禁用服务工作者。我正在研究应用程序检测它正在运行什么浏览器,并调用一些代码来禁用服务工作者或类似的东西。如果有人对此有任何经验,我将不胜感激。
答案 0 :(得分:2)
检查浏览器与Service Worker兼容性的最常用方法是:
if ('ServiceWorker' in navigator) {
// supported
} else {
// not supported
}
大多数情况下,您不需要显式检查当前用户运行的浏览器,因为该测试会为您提供足够的信息。因此,在这种简单的情况下不要检查UA。
但应该注意的是,不同版本的Firefox和Chrome支持不同数量的Service Worker功能。这意味着即使测试通过,也可能尝试执行特定于SW的代码,导致浏览器抛出错误,因为API或者当前正在使用的浏览器版本中尚未实现。在这些情况下,需要仔细检查浏览器的功能。