服务工作者和iOS / Safari

时间:2015-04-27 12:11:25

标签: ios service-worker progressive-web-apps

在Chromium的关于服务工作者的网页上,有人注意到

  

iOS上的Chrome不支持服务工作者。

我认为它可以使用一些cordova插件传送到iOS。在iOS设备上有没有其他方法可以使用Service Workers?
我担心在iOS上发布新版本和新版本的cordova之间的时间。

有人知道iOS上的Chrome是否会在未来支持服务工作者? :)

7 个答案:

答案 0 :(得分:32)

虽然Ian的回答在发布时(2015年4月)很好,但这个问题成为很多对服务工作者和Progressive Web Apps感兴趣的人的重要入口点,现在回答更广泛。

Apple的反馈

<强>二零一八年三月三十日: 服务人员随Safari 11.1一起提供。做得好! https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html

<强>二○一七年十二月二十零日: Safari技术预览版中默认启用服务工作者46 https://webkit.org/blog/8042/release-notes-for-safari-technology-preview-46/

<强> 2017年4月8日: 正式开展工作:) https://webkit.org/status/#specification-service-workers

<强> 07.2017 webkit-dev上的更多正面信号:

  

WebKit团队的Apple工程师在过去几年中一直积极参与ServiceWorkers规范讨论。我们对规范的许多担忧已得到解决,特别是对于Fetch服务工作者而言,这些工作人员通常不会超出使用它们的页面范围。虽然我们还没有做任何实施工作,但正在考虑的问题&#34;在这种情况下,字面意思是。我们实际上正在考虑它。

<强> 06.2016 : 根据{{​​3}} iOS(Safari)的当前状态是:

  

Jake Archibald's 'Is ServiceWorker ready?'Under consideration中的简短正面信号。

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

资源

跟踪服务工作者当前状态最受认可的地方是five year plan

还有另一种资源可以收集这些信息,提供有关各种Chromium版本的更多信息,这些信息在中国最受欢迎,并涵盖了更多细节:Jake Archibald's 'Is ServiceWorker ready?'

争论

关于Apple参与现代网络功能的大规模辩论是在Nolan Lawson撰写的文章https://ispwaready.toxicjohann.com/之后引发的,其主要观点是

  

近年来,苹果公司的网络战略可以被描述为“仁慈的忽视”。

对方的主要论点是服务工作者和其他离线/ PWA功能不以客户为中心 - 这是Safari开发的重点。

有些人甚至更像Safari is the new IE (06/2015)那样陈述

  

Apple将网络应用视为二等公民,因为它们不像应用程序商店中的本机应用程序那样产生资金。

常见的一点是,苹果公司落后于其他供应商(Chrome,Firefox,Edge),其开发功能可以改善网络体验,但修复关键错误的速度也非常缓慢,这使得某些功能在技术上无法使用。 / p>

答案 1 :(得分:21)

我不知道iOS上的Chrome是否或何时会支持服务工作者,但今天肯定可以使用Cordova。

npm上的Service Worker plugin将允许您在iOS上的Cordova应用中使用API​​。

答案 2 :(得分:7)

我写了一篇文章,主题是Apple:

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

它被一些关键人物转发,然后发布在黑客新闻上,并继续获得一些良好的推特活动。一周后,他们开始开发它。所以 - 请继续关注,它即将到来!

答案 3 :(得分:1)

服务工作者可在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

注意:

答案 4 :(得分:0)

最后,Apple在其TP中增加了对服务工作者的支持。您可以在这里阅读有关safari的PWA支持的更多信息

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

这是服务工作者的详细支持信息 http://ispwaready.toxicjohann.com/

答案 5 :(得分:0)

刚刚升级到Safari 11.1附带的High Sierra 13.4

尝试使用Safari 11.1

了解我所知道的PWA演示网站

https://beebole.github.io/mobile-app-demo/

断开了我的wifi,很难重新加载页面

收到消息

您没有互联网,请尝试我们的离线阅读列表!!!!

任何想法

答案 6 :(得分:0)

回答@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);
    })
  );
});