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

时间:2018-11-13 13:29:49

标签: ios swift wkwebview progressive-web-apps

我想使用简单的class Show(models.Model) : Total = models.IntegerField(default = 0) Prof = models.IntegerField(default = 0) AssociateProf = models.IntegerField(default = 0) AssistantProf = models.IntegerField(default = 0) ResearchScholar = models.IntegerField(default = 0) MTech = models.IntegerField(default = 0) 通过iOS上的PWA制作应用程序。我已经设法通过一个简单的WKWebView来实现它,并且效果很好。

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

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

预先感谢您的回答!

2 个答案:

答案 0 :(得分:0)

我认为您应该在Native App上实现用于授权和登录UI的登录API,然后可以使用单个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)..
    }

答案 1 :(得分:0)

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

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