防止 PWA 在访问时重新启动

劳尔·雷内

我正在开发 PWA 并在付款页面上遇到了这个问题。基本上:

场景一

  1. 用户填写付款表格
  2. 点击提交,被重定向到第 3 方支付页面 - Stripe(这会在移动设备上的 Chrome 中打开一个选项卡,并且无法像在桌面上那样调整打开模式)
  3. 支付成功,3rd 方页面重定向到 PWA,PWA 自动重启。

问题是我有一个无法显示的成功页面,因为在重新启动时我丢失了我所处的整个状态。

场景二

  1. 用户填写付款表格
  2. 点击手机上的后退按钮/主页按钮
  3. 从桌面,再次打开应用程序。有时应用程序会以以前的状态打开(填写表格),有时它会重新启动,再次丢失所有内容。

我能做些什么来防止这种情况发生吗?我知道当您从桌面打开 PWA 图标时,您基本上是在打开 chrome。但是,如果该应用程序已经打开(并且它仍然在“最近”选项卡中可见),我能做些什么来防止它重新启动?我猜手机会自动关机。

可能的解决方案:

我现在唯一能想到的就是将所有内容存储在 localStorage 中并尝试在刷新时重新加载。这样我就可以确保即使它关闭并再次打开,我仍然保持以前的状态。

有趣的是,场景 1(最让我困扰)只发生在三星 Galaxy S7 上(到目前为止测试了 6-7 台设备,它是唯一一个可以重现的设备)。Chrome 版本在所有版本上基本相同。

有任何想法吗?谢谢!

劳尔·雷内

所以保存到本地存储例程起作用了。我传递给 Stripe 的回调函数被调用,但在 PWA 重新启动后立即被调用。

所以我所做的是在回调中的第一件事中将我的状态保存在 localStorage 中,带有一个标志,paymentInProgress然后才尝试在服务器上调用 save 并显示成功页面。如果一切都在中间崩溃,应用程序会重新启动,componentDidMount我正在检查 localStorage 数据和paymentInProgress === true标志。

我仍然很好奇是否有其他解决方案可以防止页面从头开始重新加载。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

解决MIP时如何防止SCIP重新启动

防止Vim 8重新启动时重新打开以前编辑的文件

更改index.html时强制更新已安装的PWA(防止缓存)

如何防止在重新启动时自动删除使用GetTempFileName创建的文件

运行新脚本时如何防止python IDLE重新启动

防止postgresql文件在每次重新启动时被删除?

Python多重处理,无法在重新启动时终止进程并防止僵尸

在 iOS 中重新启动应用程序时,防止在启动屏幕后出现上次访问的视图?

如何防止活动在改变方向后重新启动

在冻结的Windows上重新启动(或防止冻结)

防止重新启动 GNOME Shell 使我注销

如何防止过渡后CSS动画重新启动?

如何防止重新启动正在运行的服务-Android

防止交换期间暂存站点重新启动

如何防止SKAction序列在解码后重新启动?

任何防止计算机重新启动的方法

如何防止Windows在重新启动之前执行安装?

如何防止重新启动后重置鼠标设置?

如何防止Windows 10 Update重新启动我的电脑

如何防止服务工作者删除缓存,PWA

重新启动后如何防止重新创建“标准文件夹”?

iOS PWA启动画面?

访问PWA地址的URL参数

在某些目录中进行更改时,防止重新启动NestJS服务器

重新启动程序时,如何防止文本从 tkinter GUI 消失?

Vagrant虚拟机(Virtualbox)可以防止意外关闭/重新启动吗?

如何防止grunt-nodemon重新启动所有应用程序

如何防止Windows 10安装更新后重新启动计算机

重新启动后如何防止EC2实例更改公共IP地址?