防止 PWA 在访问时重新启动
Prevent PWA from restarting when it's accessed
我正在开发 PWA 并在支付页面上遇到了这个问题。基本上:
场景一
- 用户填写付款表格
- 点击提交,被重定向到第 3 方支付页面 - Stripe(这会在移动设备 Chrome 中打开一个选项卡,并且不能像在桌面设备上那样调整为打开模式)
- 支付成功,第三方页面跳转到PWA,自动重启
问题是我有一个无法显示的成功页面,因为重新启动时我失去了我所在的整个状态。
场景二
- 用户填写付款表格
- 在 phone
上返回 button/home 按钮
- 从桌面再次打开应用程序。有时应用程序会以以前的状态打开(填写表格),有时会重新启动,再次丢失所有内容。
我能做些什么来防止这种情况发生?我知道当您从桌面打开 PWA 图标时,您基本上是在打开 chrome。但是,如果该应用程序已经打开(并且它在最近的选项卡中仍然可见),我能做些什么来防止它重新启动吗?我猜 phone 会自动关闭它。
可能的解决方案:
我现在唯一能想到的就是将所有内容存储在 localStorage 中并尝试在刷新时重新加载。这样我可以确保即使它关闭并再次打开我仍然保持之前的状态。
有趣的是,场景 1(最让我困扰的)只发生在三星 Galaxy S7 上(到目前为止已经测试了 6-7 台设备,而且它是唯一可以重现的设备)在)。 Chrome 版本几乎都相同。
有什么想法吗?谢谢!
所以保存到本地存储例程成功了。我传递给 Stripe 的回调函数被调用,但在 PWA 重新启动后立即被调用。
所以我所做的是在回调中首先将我的状态保存在 localStorage 中,带有 paymentInProgress
标志,然后才尝试在服务器上调用保存并显示成功页面。如果中间一切都崩溃了,应用程序会重新启动,然后在 componentDidMount
我正在检查 localStorage 数据和 paymentInProgress === true
标志。
我仍然很好奇是否有其他解决方案可以防止页面从头开始重新加载。
我正在开发 PWA 并在支付页面上遇到了这个问题。基本上:
场景一
- 用户填写付款表格
- 点击提交,被重定向到第 3 方支付页面 - Stripe(这会在移动设备 Chrome 中打开一个选项卡,并且不能像在桌面设备上那样调整为打开模式)
- 支付成功,第三方页面跳转到PWA,自动重启
问题是我有一个无法显示的成功页面,因为重新启动时我失去了我所在的整个状态。
场景二
- 用户填写付款表格
- 在 phone 上返回 button/home 按钮
- 从桌面再次打开应用程序。有时应用程序会以以前的状态打开(填写表格),有时会重新启动,再次丢失所有内容。
我能做些什么来防止这种情况发生?我知道当您从桌面打开 PWA 图标时,您基本上是在打开 chrome。但是,如果该应用程序已经打开(并且它在最近的选项卡中仍然可见),我能做些什么来防止它重新启动吗?我猜 phone 会自动关闭它。
可能的解决方案:
我现在唯一能想到的就是将所有内容存储在 localStorage 中并尝试在刷新时重新加载。这样我可以确保即使它关闭并再次打开我仍然保持之前的状态。
有趣的是,场景 1(最让我困扰的)只发生在三星 Galaxy S7 上(到目前为止已经测试了 6-7 台设备,而且它是唯一可以重现的设备)在)。 Chrome 版本几乎都相同。
有什么想法吗?谢谢!
所以保存到本地存储例程成功了。我传递给 Stripe 的回调函数被调用,但在 PWA 重新启动后立即被调用。
所以我所做的是在回调中首先将我的状态保存在 localStorage 中,带有 paymentInProgress
标志,然后才尝试在服务器上调用保存并显示成功页面。如果中间一切都崩溃了,应用程序会重新启动,然后在 componentDidMount
我正在检查 localStorage 数据和 paymentInProgress === true
标志。
我仍然很好奇是否有其他解决方案可以防止页面从头开始重新加载。