WKWebView 遇到的坑
来源:互联网 发布:mysql主从原理 编辑:程序博客网 时间:2024/06/03 04:16
wkwebView 设置Cookies
使用WKWebView configoration 设置cookie 有时候可能不成功。
使用如下方法设置cookie会偶现设置不了的问题。
NSString *cookie = [NSString stringWithFormat:@"document.cookie = 'session_id=%@'; document.cookie = 'CLIENT=App'; document.cookie = 'domain=test'", accessToken]; WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource:cookie injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]; [self.configuration.userContentController addUserScript:cookieScript];
最后改为设置request headFile的方法
NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url]; [request addValue:[NSString stringWithFormat:@"session_id=%@", accessToken] forHTTPHeaderField:@"Cookie"]; [request addValue:[NSString stringWithFormat:@"domain=test"] forHTTPHeaderField:@"Cookie"]; [self loadRequest:request];
缓存问题
在第一次打开webView后,移动端为了使用的便捷,会在本地做一个缓存,服务器端也有类似的缓存。但有时服务器端更改信息或者web端更改界面信息。我们往往打开移动端的webView界面,仍然是原来的界面状态,这就是移动端的缓存机制造成的。
有两个方法处理这个文图:
通过完全清除WKWebView的本地缓存,然后重新请求解决
//// Optional data NSSet *websiteDataTypes = [NSSet setWithArray:@[ WKWebsiteDataTypeDiskCache,// //WKWebsiteDataTypeOfflineWebApplicationCache, WKWebsiteDataTypeMemoryCache,// //WKWebsiteDataTypeLocalStorage,// //WKWebsiteDataTypeCookies,// //WKWebsiteDataTypeSessionStorage,// //WKWebsiteDataTypeIndexedDBDatabases,// //WKWebsiteDataTypeWebSQLDatabases ]]; //// All kinds of data// NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; //// Date from NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0]; //// Execute [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{ // Done }];
通过在请求时忽略本地和远程的缓存强制刷新
NSURLRequestReloadIgnoringLocalAndRemoteCacheDataNSURLRequest *request = [[NSURLRequest alloc]initWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:20];[self.webView loadRequest:request];
常见请求缓存类型
typedef NS_ENUM(NSUInteger, NSURLRequestCachePolicy){ NSURLRequestUseProtocolCachePolicy = 0, NSURLRequestReloadIgnoringLocalCacheData = 1, NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, NSURLRequestReturnCacheDataElseLoad = 2, NSURLRequestReturnCacheDataDontLoad = 3, NSURLRequestReloadRevalidatingCacheData = 5, // Unimplemented};
阅读全文
0 0
- WKWebView 遇到的坑
- 使用WKWebView遇到的坑
- WKWebView 遇到过的坑
- WKWebView使用遇到的一些坑
- WKWebView使用遇到的坑,WKWebView返回向上移,代理报错,返回页面报错
- WKWebView(同事遇到的坑mark下)
- iOS开发wkwebview遇到的那些坑-canOpenURL
- 用了一年wkwebview中遇到的坑
- WKWebView使用遇到的问题与解决办法
- 使用WKWebView进行交互时遇到的内存泄露的坑
- WKWebView的两个坑点
- 使用WKWebView增加自动布局约束遇到的问题
- Swift 使用WKWebview过程中遇到的问题汇总
- WKWebView 使用的一些踩坑记录
- UITableView嵌套WKWebView的那些坑
- UITableView嵌套WKWebView的那些坑
- WKWebView的使用心得
- WKWebView的使用
- ccf csp 公共钥匙盒
- Intellij mvn git hbase
- ifconfig: command not found
- 图像的梯度特征算子
- Golang crontab定时执行任务(github.com/robfig/cron)
- WKWebView 遇到的坑
- java定时器注解形式的
- webstorm删除的文件,如何恢复?
- Oracle建立表空间用户以及dmp文件导入导出
- 在angular4的ts文件中进行类似于dom操作的方法
- java.lang.IllegalStateException: Failed to load ApplicationContext
- Could not initialize class net.sf.json.JsonConfig错误解决
- ecshop常见漏洞
- 打地鼠小游戏