SFSafariViewController 在返回应用程序时丢失状态

SFSafariViewController loses state when returning to app

我的应用程序有一个基于网络的在线支付流程——使用 Adyen 托管支付页面 (HPP)——SFSafariViewController(由 Adyen 推荐)。当支付流程完全发生在 Safari 内部时,这非常有效。

但是一些银行使用他们的本地 iOS 应用程序来授权网络支付(通常是在将用户 ID 输入到网络流程中后在那里输入 PIN 码)。当返回我的应用程序时,Safari 视图控制器经常重新加载其内容,在支付完成之前重置整个支付流程。 (同样的事情也经常发生在简单地访问任何其他应用程序时——猜猜这与内存消耗有关?)

有没有办法强制 Safari 视图控制器保留其当前状态,无论如何?

虽然我的回答与 SFSafariViewController 无关,但我建议您看一下 Adyen 的新目录查找 SDK:https://github.com/Adyen/adyen-dl-ios 假设使用它而不是 HPP(如果合适)并为接受本地支付方式提供更好的用户体验。

我在我的应用程序中发现了相同的行为。在我们的例子中,我们没有使用 Adyen。但是行为是一样的。

每次应用 returns 到前台一段时间后,它会失去状态并重新加载到原始状态。

我没有找到任何方法来避免这种行为。有没有办法强制 SFSafariViewController 保持其状态?

更新:我发现这种行为只发生在 iOS 10.0.1