iOS WKWebView学习笔记(二)

本文探讨了在iOS开发中,WKWebView与原生应用间通过三种不同方式实现Cookie同步的方法,包括请求头设置、JS注入及WKWebsiteDataStore管理,对比各方案优缺点。

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

在实际开发中,会存在交互,就是原生和h5页面数据同步,比如登录同步。就可以使用Cookie进行信息同步。

WKWebViewcookie注入,一共是三种方式,

一)在请求的请求头中设置Cookie

二)在WKWebViewConfiguration中,通过js注入document.cookie

三)注入WKWebsiteDataStore中的WKHTTPCookieStore

方案1:WKWebView loadRequest 前,在 request header 中设置 Cookie, 解决首个请求 Cookie 带不上的问题;
缺陷:只能解决指定的一个URL的请求,涉及到同域的Ajax跳转还是会缺失cookie

方案2: 通过 document.cookie 设置 Cookie 解决后续页面(同域)Ajax、iframe 请求的 Cookie 问题;
缺陷:不能解决跨域cookie的问题

方案3:每次页面跳转的时候回调用decidePolicyForNavigationAction回调,那么就可以在回调里拦截请求,加入cookie后重新发送。
缺陷:loadRequest是加载mainFrame请求,所以依然解决不了页面 iframe 跨域请求的 Cookie 问题

具体的缺陷,尚未完全验证。

Demo地址https://github.com/ioszhanghui/HandleCookies

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值