45

在 Chromium 关于服务人员的页面上,有人指出

iOS 上的 Chrome 不支持 Service Worker。

我假设它可以使用一些cordova插件交付给iOS。有没有其他方法可以在 iOS 设备上使用 Service Worker?
我担心在 iOS 上发布新版本和 Cordova 新版本之间的时间。

有谁知道 iOS 上的 Chrome 将来是否会支持服务人员?:)

4

6 回答 6

40

尽管 Ian 的答案在发布时(04.2015)已​​经很好了,但这个问题成为许多对服务工作者和渐进式 Web 应用程序感兴趣的人的重要切入点,现在答案范围更广了。

来自苹果的反馈

30.03.2018 : Service Worker 随 Safari 11.1 一起提供。好工作!https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html

20.12.2017:在 Safari 技术预览版 46 中默认启用服务工作者 https://webkit.org/blog/8042/release-notes-for-safari-technology-preview-46/

04.08.2017 : 正式工作正在进行中:) https://webkit.org/status/#specification-service-workers

07.2017 : webkit-dev上的更多积极信号:

在过去的几年里,来自 WebKit 团队的 Apple 工程师大量参与了 ServiceWorkers 规范的讨论。我们对规范的许多担忧已经得到解决,特别是对于通常不会超出使用它们的页面范围的 Fetch 服务工作者。虽然我们还没有做任何实现工作,但本例中的“考虑中”是字面意思。我们实际上正在考虑它。

06.2016 : 根据Jake Archibald 的“ServiceWorker 准备好了吗?” iOS(Safari)的当前状态是:

正在考虑五年计划中的积极信号。

请注意,它会影响 iOS 上的所有浏览器 - 由于 Apple 的限制,iOS 上的 Chrome 使用 WKWebView - 与 Safari 相同的渲染引擎,它只是围绕它的一个小包装,因此仅限于当前功能。

资源

跟踪 Service Worker 当前状态最受认可的地方是Jake Archibald 的“ServiceWorker 准备好了吗?” .

还有另一个资源可以收集这些信息,提供有关各种 Chromium 构建的更多信息,这些构建在中国最流行并涵盖更多细节:https ://ispwaready.toxicjohann.com/

争议

在 Nolan Lawson 的文章Safari 是新的 IE (06/2015)之后,引发了关于 Apple 参与现代网络功能的广泛辩论,其主要观点是

近年来,苹果的网络战略可以用“仁慈的忽视”来形容。</p>

对方的主要论点是 Service Worker 和其他离线/PWA 功能不是以客户为中心的——这是 Safari 开发的重点。

有些人甚至更加激进,例如Greg Blass 在他的文章 (07/2017)中指出

Apple 将网络应用程序视为二等公民,因为它们不像应用程序商店中的本地应用程序那样赚钱。

共同点是,Apple 在开发可改善 Web 体验的功能方面落后于其他供应商(Chrome、Firefox、Edge),但修复严重错误的速度也非常缓慢,导致某些功能在技术上无法使用。

于 2017-07-27T11:45:43.383 回答
21

我不知道 iOS 上的 Chrome 是否或何时会支持 Service Worker,但今天使用 Cordova 绝对有可能。

npm 上的Service Worker 插件可让您在 iOS 上的 Cordova 应用程序中使用 API。

于 2015-04-27T16:42:50.797 回答
9

我写了一篇关于这个主题的文章呼吁苹果:

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-of-the-web-e81b2be29676

它被几个关键人物转发,然后发布在黑客新闻上,并继续获得一些不错的推特活动。一周后,他们开始对其进行开发。所以——敬请期待,它来了!

于 2017-08-04T20:39:34.353 回答
1

Service Worker 在 Safari 11.1 中可用,该版本于 2018 年 3 月 29 日随 iOS 11.3 和 macOS 10.13.4 一起发布:

https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html

笔记:

于 2018-03-30T15:40:15.057 回答
1

回答@mcl 如果您在服务人员中更改代码:

self.addEventListener( 'install', function(){
  return self.skipWaiting( );
});

到以下代码,它应该可以工作。我也更改了所有变量,所以只需复制粘贴即可。

self.addEventListener('install', event => {
  console.log('Attempting to install service worker and cache static assets');
  event.waitUntil(
    caches.open(FILES_CACHE)
    .then(cache => {
      return cache.addAll(urlsToCache);
    })
  );
});
于 2019-02-08T14:07:39.973 回答
1

最后,Apple 在他们的 TP 中增加了对 service worker 的支持。您可以在此处阅读有关 safari 的 PWA 支持的更多信息

https://medium.com/awebdeveloper/progressive-web-apps-pwas-are-coming-to-a-safari-near-you-216812aba5a

这是服务人员的详细支持信息 http://ispwaready.toxicjohann.com/

于 2018-01-08T11:58:01.047 回答