Chrome服务工作者iOS支持

时间:2018-05-30 14:32:45

标签: ios google-chrome service-worker

苹果几个月前宣布支持iOS 11.3的服务工作者,我最近开始尝试让服务工作者在iOS上工作。在Safari上它按预期工作,在访问网站后,它可以脱机工作。但是,当尝试在Chrome中使用相同的功能时,我的结果是间歇性的。具体来说,服务工作者只会每隔一页刷新一次,脱机后的原始刷新是其中一个工作。

我知道iOS上的Chrome是基于Safari版本构建的,因此我对此行为感到困惑。

这是由于Chrome iOS对服务工作者的支持不完整吗?因为它是iOS上的Chrome,我不确定是否有任何简单的方法来调试它,所以任何其他提示,以帮助追踪问题将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:7)

目前

Chrome for iOS do not support service workers(截至2018年5月)以及"添加到主屏幕"如果您对此感兴趣,则无法使用该选项。您遇到的任何离线页面加载都应来自常规浏览器缓存。

来自Apple的网络工具包页面的

Here is an official documentation

  

更新:此帖子的先前版本说明了Service Worker API   在使用WKWebView 的所有应用程序中都可用。这时候是   仅适用于Safari,使用的应用程序   SFSafariViewController和Web应用程序保存到您的家中   屏幕。

值得注意的是,Chrome在iOS中使用WKWebView作为其浏览器引擎,根据上述声明(您可以在上面提供的链接中找到),它还没有服务工作者支持。因此,在iOS中使用Service worker的唯一方法是使用Safari浏览器或在本机应用程序中使用上述支持的Web视图之一。

Here is an article关于所有PWA功能iOS仍然缺失的内容。请记住,这是一个快速发展的领域。始终检查现在是否适用,特别是如果文档/文章变老了。

Here is an adapter帮助调试Chrome开发工具,用于加载iOS的网页 - webkit / safari。希望它有一天像Android Chrome调试一样简单!

答案 1 :(得分:0)

Chrome for iOS是开源的(https://blog.chromium.org/2017/01/open-sourcing-chrome-on-ios.html) 我们可以将带有开发者签名证书的Chrome应用安装到iOS设备上,启动Chrome应用,然后开始测试。

从技术上讲是可行的。

答案 2 :(得分:0)

作为 2021 年 1 月的更新:official documentation from Apple's web-kit page 仍然说同样的话,我刚刚在 Chrome iOS 中解决了一个非常难以调试的问题 - 在此处发布以帮助某人。

我有一个 iFrame,其中包含启用了 Service Worker 的跨源 Angular 10 PWA,并且 iFrame 内容在初始加载后不会显示 - 没有错误,没有服务器日志,只是空白。唯一有效的解决方案是自毁 Service Worker per Angular's docs,现在 iFrame 加载正常。