我正在开发PWA并在付款页面上遇到此问题。基本上是:
情景1
问题是我有一个无法显示的成功页面,因为重新启动时我失去了我所处的整个状态。
场景2
我能做些什么来防止这种情况发生?我知道当你从桌面打开PWA图标时,你基本上是打开chrome。但是如果应用程序已经打开(并且它仍然在最近的选项卡中可见),我有什么办法可以阻止它重新启动吗?我想手机会自动将其关闭。
可能的解决方案:
我现在能想到的唯一一件事就是将所有内容存储在localStorage中并尝试在刷新时重新加载。通过这种方式,我可以确保即使它关闭并再次打开,我仍然保持之前的状态。
有趣的是,场景1 (这让我最困扰)只发生在三星Galaxy S7上(直到现在测试了6-7台设备,它是唯一一个重现的设备)。 Chrome版本在所有版本上大致相同。
有什么想法吗?谢谢!
答案 0 :(得分:1)
因此保存到本地存储例程有效。我传递给Stripe的回调函数被调用,但是在PWA重新启动后立即被调用。
所以我所做的就是将我的状态保存在localStorage中,这是回调中的第一件事,标志为paymentInProgress
,然后尝试在服务器上调用save并显示成功页面。如果一切都在中间崩溃,应用程序重新启动并在componentDidMount
我检查localStorage数据和paymentInProgress === true
标志。
我仍然很好奇是否有其他解决方案可以防止页面从头开始重新加载。