小编Spe*_*les的帖子

ReactJs PWA无法在iOS上更新

我正在构建一个ReactJs PWA,但在检测iOS上的更新时遇到了麻烦。

在Android上,一切工作正常,因此我想知道这是否与iOS对PWA的支持有关,或者我对Service Worker的实现不好。

到目前为止,这是我所做的:

构建过程和托管

我的应用程序是使用webpack构建的,并托管在AWS上。大多数文件(js / css)的名称均由其内容生成的哈希值构成。对于那些不是(应用清单,index.html,sw.js)的应用程序,我确保AWS为它们提供了一些Cache-Control标头,以防止任何缓存。一切都通过https提供。

服务人员

我尽可能简化了这一过程:除了为我的应用程序外壳程序添加precache之外,我没有添加任何缓存规则:

workbox.precaching.precacheAndRoute(self.__precacheManifest || []);
Run Code Online (Sandbox Code Playgroud)

服务人员注册

服务工作者的注册发生在主要的ReactJs App组件的componentDidMount()生命周期挂钩中:

componentDidMount() {
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/sw.js')
      .then((reg) => {
        reg.onupdatefound = () => {
          this.newWorker = reg.installing;
          this.newWorker.onstatechange = () => {
            if (this.newWorker.state === 'installed') {
              if (reg.active) {
                // a version of the SW is already up and running

                /*
                  code omitted: displays a snackbar to the user to manually trigger
                  activation of the new SW. This will be …
Run Code Online (Sandbox Code Playgroud)

ios reactjs progressive-web-apps

3
推荐指数
1
解决办法
2559
查看次数

标签 统计

ios ×1

progressive-web-apps ×1

reactjs ×1