在Chromium关于服务人员的页面上,指出
iOS上的Chrome不支持Service Worker。
我假设可以使用一些cordova插件将其交付给iOS。还有其他方法可以在iOS设备上使用Service Workers吗?
我担心在iOS上发布新版本与Cordova的新版本之间会有时间。
有人知道iOS上的Chrome浏览器将来是否会支持服务人员吗?:)
尽管Ian的答案在发布时(2015年4月4日)已经很不错了,但对于许多对服务工作者和Progressive Web Apps感兴趣的人来说,此问题已成为重要的切入点,并且答案现在范围更广。
来自苹果公司的反馈
30.03.2018:Safari 11.1随附服务人员。做得好!https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html
2017年12月20日:在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服务工作者,这些工作者通常不会超出使用它们的页面范围。尽管我们尚未完成任何实现工作,但在这种情况下,“正在考虑中”的字面意思是。我们实际上正在考虑。
2016年6月6日:根据杰克·阿奇博尔德的说法,“ ServiceWorker准备好了吗?” iOS(Safari)的当前状态为:
请注意,由于苹果的限制,它会影响iOS上的所有浏览器-iOS上的Chrome使用的是WKWebView-与Safari相同的渲染引擎,并且它周围只有很小的包装,因此仅限于当前功能。
资源资源
跟踪服务人员当前状态的最著名的地方是杰克·阿奇博尔德(Jake Archibald)的“服务工人准备好了吗?” 。
还有另一种资源可以收集这些信息,以提供有关各种Chromium版本的更多信息,这些信息在中国最受欢迎,涵盖了更多详细信息:https : //ispwaready.toxicjohann.com/
争议
在Nolan Lawson的文章Safari是新的IE(06/2015)之后,引发了关于Apple参与现代Web功能的广泛辩论。
近年来,苹果公司的网络战略可以说是“仁慈的疏忽”。
对方的主要论点是服务工作者和其他离线/ PWA功能不是以客户为中心的,这是Safari开发的重点。
有些人甚至更像Greg Blass在他的文章(07/2017)中指出,
苹果将网络应用程序视为二等公民,因为它们不会像应用程序商店中的本机应用程序那样产生收入。
共同点是,苹果在开发可以改善网络体验的功能方面落后于其他供应商(Chrome,Firefox,Edge),但修复关键错误的速度非常慢,这些错误使某些功能在技术上无法使用。
我不知道iOS上的Chrome是否或何时支持Service Worker,但如今使用Cordova绝对有可能。
npm上的Service Worker插件可让您在iOS的Cordova应用中使用API。
我写了一篇文章称苹果为该主题:
它由几个关键人物转发,然后发布在黑客新闻上,并继续获得一些不错的Twitter活动。一周后,他们开始在上面进行开发。所以-敬请期待,它来了!
最后,苹果在TP中增加了对服务人员的支持。您可以在此处阅读有关Safari的PWA支持的更多信息
这是服务人员的详细支持信息
http://ispwaready.toxicjohann.com/
Safari 11.1中提供了Service Worker,该产品于2018年3月29日与iOS 11.3和macOS 10.13.4一起发布:
注意:
- 都支持Service Worker + Cache API(Cache API实际上是Service Worker支持的先决条件)
- 苹果公司实施Service Worker时应注意的一些问题:https : //medium.com/@firt/pwas-are-coming-to-ios-11-3-cupertino-we-have-a-problem-2ff49fd7d6ea
- 没有“添加到主屏幕”提示
- 没有推送API
- 没有后台同步
回答@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);
})
);
});
文章标签:ios , progressive-web-apps , service-worker
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!