webview获取网页cookie

本文介绍如何在iOS的WebView中获取网页Cookie,以实现在App重新进入时判断用户登录状态。通过监听webViewDidFinishLoad,获取NSHTTPCookieStorage中的cookie,并将登录信息保存在NSUserDefaults中。当App首次加载时,检查是否有登录信息,如有则通过JavaScript与前端交互,传递用户信息。当用户在WebView中退出登录,清除本地存储的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在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页面上点击了退出登录,清除我们持久化的数据就可以了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值