ios - Chrome Service Worker iOS 支持

标签 ios google-chrome service-worker

随着 Apple 几个月前宣布 Service Worker 支持 iOS 11.3,我最近开始尝试让 Service Worker 在 iOS 上工作。在 Safari 上,它按预期工作,在访问该网站后,它可以离线工作。但是,当尝试在 Chrome 中使用相同的功能时,我得到了断断续续的结果。具体来说,service worker 只会在每隔一次页面刷新时工作,离线后的原始刷新是工作的页面之一。

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

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

最佳答案

Chrome for iOS do not support service workers目前(截至 2020 年 4 月)并且“添加到主屏幕”选项不可用,如果您对此感兴趣的话。您遇到的任何离线页面加载都应该来自常规浏览器缓存。

Here is an official documentation来自 Apple 的 web-kit 页面。

Update: A previous version of this post stated the Service Worker API is available in all applications using WKWebView. At this time it is only available in Safari, applications that use SFSafariViewController, and web applications saved to your home screen.

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

Here is an article关于 iOS 仍然缺少哪些 PWA 功能。请记住,这是一个快速发展的领域。始终检查现在是否适用,尤其是在文档/文章变旧的情况下。

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

关于ios - Chrome Service Worker iOS 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607343/

相关文章:

iOS:AFNetworking 多重下载。请求操作超时

javascript - Chrome 上的 Angular 加载空白屏幕,控制台中没有错误

javascript - React/Service Worker 不确定引用

iphone - 委托(delegate)和协议(protocol)无法正常工作

ios - 使用扩展音频文件写入和读取音频文件

ios - 如何在 XCassets 中使用立方体纹理类型

css - Chrome : Text blurry when skew back : skew(-10deg) -> skew(10deg)

angular - 未捕获( promise )未定义

javascript - 如何增加 'chrome push notification' 可见时间?

javascript - ServiceWorker 的冗余状态应该怎么办?