Comments (5)
实际所有设置cookie的方式都应该废弃,WKWebView设置cookie有延迟,通过系统提供的api没办法完美解决cookie同步的问题,可以考虑通过网络托管。
from jxbwkwebview.
实际所有设置cookie的方式都应该废弃,WKWebView设置cookie有延迟,通过系统提供的api没办法完美解决cookie同步的问题,可以考虑通过网络托管。
网络托管是什么意思?
from jxbwkwebview.
实际所有设置cookie的方式都应该废弃,WKWebView设置cookie有延迟,通过系统提供的api没办法完美解决cookie同步的问题,可以考虑通过网络托管。
网络托管是什么意思?
涉及到WebView设置cookie的地方有两处。
第一处:
浏览器自身发起的请求,比如WebView的loadRequest方法发起的请求,这种自定义URLRequest对象的请求是可以设置cookie的,但是发送post请求时通过URLProtocol拦截到的post请求的body会丢失,所以这个问题目前无解,只能往NSHTTPCookieStorage里写cookie,但是这样cookie同步到WKWebView的cookie存储域会有延迟性,具体的延迟时间是在WKWebView加载完任意一个页面之后,你写入的cookie才会生效。
第二处:
JavaScript利用ajax发送的请求,有的时候ajax请求携带的Cookie可能会丢失(但实际NSHTTPCookieStorage存储域里是有的,你可以打印一下试试),这种解决方案就是你需要注入一段JavaScript脚本,脚本的作用是hook所有ajax请求,你到存储域里拿完cookie写到ajax请求的body里。
from jxbwkwebview.
实际所有设置cookie的方式都应该废弃,WKWebView设置cookie有延迟,通过系统提供的api没办法完美解决cookie同步的问题,可以考虑通过网络托管。
网络托管是什么意思?
涉及到WebView设置cookie的地方有两处。
第一处:
浏览器自身发起的请求,比如WebView的loadRequest方法发起的请求,这种自定义URLRequest对象的请求是可以设置cookie的,但是发送post请求时通过URLProtocol拦截到的post请求的body会丢失,所以这个问题目前无解,只能往NSHTTPCookieStorage里写cookie,但是这样cookie同步到WKWebView的cookie存储域会有延迟性,具体的延迟时间是在WKWebView加载完任意一个页面之后,你写入的cookie才会生效。
第二处:
JavaScript利用ajax发送的请求,有的时候ajax请求携带的Cookie可能会丢失(但实际NSHTTPCookieStorage存储域里是有的,你可以打印一下试试),这种解决方案就是你需要注入一段JavaScript脚本,脚本的作用是hook所有ajax请求,你到存储域里拿完cookie写到ajax请求的body里。
hook 的方式更加方便点,只是对于表单类请求,就不适合了,除非端上提供文件相关的能力
from jxbwkwebview.
实际所有设置cookie的方式都应该废弃,WKWebView设置cookie有延迟,通过系统提供的api没办法完美解决cookie同步的问题,可以考虑通过网络托管。
网络托管是什么意思?
涉及到WebView设置cookie的地方有两处。
第一处:
浏览器自身发起的请求,比如WebView的loadRequest方法发起的请求,这种自定义URLRequest对象的请求是可以设置cookie的,但是发送post请求时通过URLProtocol拦截到的post请求的body会丢失,所以这个问题目前无解,只能往NSHTTPCookieStorage里写cookie,但是这样cookie同步到WKWebView的cookie存储域会有延迟性,具体的延迟时间是在WKWebView加载完任意一个页面之后,你写入的cookie才会生效。
第二处:
JavaScript利用ajax发送的请求,有的时候ajax请求携带的Cookie可能会丢失(但实际NSHTTPCookieStorage存储域里是有的,你可以打印一下试试),这种解决方案就是你需要注入一段JavaScript脚本,脚本的作用是hook所有ajax请求,你到存储域里拿完cookie写到ajax请求的body里。hook 的方式更加方便点,只是对于表单类请求,就不适合了,除非端上提供文件相关的能力
对。
from jxbwkwebview.
Related Issues (20)
- webview复用之后页面会显示空白,我在viewWillAppear中调用了webview reload
- 如果在导航控制器下,不支持右滑返回,能加个属性支持右滑返回吗
- 闪退BUG HOT 1
- Demo中关于htmlString的相关代码没有
- Demo中关于htmlString的相关代码没有
- native如何调用js HOT 1
- 白名单功能可以加吗 HOT 3
- 离线包解压缩崩溃 HOT 2
- 拦截请求,有时拦截不到请求,有时可以
- JXBWebViewController 中的 cookies注册,抓包没有注册成功
- 您好,有办法拦截到wkwebview里面的资源请求并正常发送带body的post请求吗 HOT 1
- 增加缓存机制?
- 只支持JXBJSBridge调用吗?是否支持window.WebKit.call HOT 3
- targets是中文名或者HTML文件是中文名,则无法打开,用原生的wkwebview没问题 HOT 1
- 有一个SEGV_ACCERR的问题麻烦帮看下 HOT 1
- 问个问题 HOT 1
- 能否扩展注入js文件内容 HOT 1
- WKMessageHandlerHelper中的callbackWithResult方法调整 HOT 1
- 原生 -> web -> 原生 -> web 崩溃
- 使用webview复用的方式,localstorage 被清空了
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jxbwkwebview.