我在native加载webview时遇到一个问题,登陆是在前端做的,那我们的app退出重新进入时都会再次登陆,这里我是去获取网页的cookie
func webViewDidFinishLoad(webView: UIWebView) {
let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookies
var cookie = NSHTTPCookie()
for c in cookies!{
if c.isKindOfClass(NSHTTPCookie){
cookie = c
print("\(cookie.name) \(cookie.value)")
}
}
//用户登录后获取到需要的信息
let info:String = "{id:\"\(id)\",name:\"\(username)\"}"
NSUserDefaults.standardUserDefaults().setObject(info, forKey: "userInfo")
}
现在我们第一次进入app时就可以告诉前端我们是否是登录的状态,同样是在webViewDidFinishLoad实现
if firstLoad == true{
ifNSUserDefaults.standardUserDefaults().objectForKey("userInfo") != nil {
userInfo = NSUserDefaults.standardUserDefaults().objectForKey("userInfo") as! String
let js = "nativeSendUserInfoToJs(\(userInfo))"
self.webView?.stringByEvaluatingJavaScriptFromString(js)
}
}
irstLoad == false
当在webview页面上点击了退出登录,清除我们持久化的数据就可以了