WKWebview iOS(swift):在应用程序关闭后保持会话连接



我想在iOS上使用简单的WKWebView从PWA制作一个应用程序。我已经设法在一个简单的ViewController中实现了它,并且它运行得很好。

问题:当我登录然后退出应用程序时,会话丢失,我必须再次登录。

问题:用户退出应用程序后,是否可以保留会话信息?

提前感谢您的回答!

您需要研究持久化会话数据。对于WKWebView,所有这些都是WKProcessPool的一部分。因此,当您的应用程序进入后台时,您需要考虑持久化WKProcessPool会话,并且当您使用web视图时,始终使用相同的WKProcessPool实例。

以下是一个可以帮助您将数据保存到UserDefaults的答案。https://stackoverflow.com/a/52109021/2658489

我认为您应该实现登录API,以便在Native App上进行授权和登录UI,然后您可以使用单个WKWebView控制器来拥有仪表板项。

当用户使用本机页面loginViewController登录时,您应该将用户名、密码(可能已加密(存储在用户首选项中,例如。

 UserDefaults.standard.set(userName, forKey: keyUserName)
 UserDefaults.standard.set(userPassword, forKey: keyPassword)
 UserDefaults.standard.synchronize()

下次(退出应用程序后(当你回来时,你可以在AppDelegate中检查自动登录-didFinishLaunchingWithOptions例如

if let username = UserDefaults.standard.value(forKey: keyUserName) as? String,
        password = UserDefaults.standard.value(forKey: keyPassword) as? String
    {
            /// DO AUTOLOGIN .. CALL API AND LAND TO DASHBOARD PAGE (WKWebView)..
    }