WebView
//加载方法
- (void)loadRequest:(NSURLRequest *)request;
- (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;//执行JavaScript脚本【由于是同步的,需在主线程】
- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;UIWebViewDelegate
//是否可加载指定的网页,常用来和JS交互
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;//开始加载时调用
- (void)webViewDidStartLoad:(UIWebView *)webView;//加载完成时调用
- (void)webViewDidFinishLoad:(UIWebView *)webView;//加载失败时调用
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;OC调用JS
1、JavaScriptCore(iOS 7.0引入)
JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
JSValue *value = [context evaluateScript:@"document.title"];
self.title = value.toString;2、调用stringByEvaluatingJavaScriptFromString
stringByEvaluatingJavaScriptFromStringJS调用OC
1、JavaScriptCore
JavaScriptCore2、shouldStartLoadWithRequest拦截
shouldStartLoadWithRequest拦截Cookie
使用
NSHTTPCookieStorage管理
添加到Header中
```objc NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.LynkCo.com"]]; [request addValue:@"cookitnmae=78965420;" forHTTPHeaderField:@"Set-Cookie"]; [self.webView loadRequest:request];
自定义Cookie
读取所有Cookie,Cookie转换成HTTPHeaderFields,并添加到request的header中
WKWebView
包含14个类和3个协议
名称
说明
WKBackForwardList
之前访问过的 web 页面的列表,可以通过后退和前进动作来访问到。
WKBackForwardListItem
webview 中后退列表里的某一个网页。
WKFrameInfo
包含一个网页的布局信息。
WKNavigation
包含一个网页的加载进度信息。
WKNavigationAction
包含可能让网页导航变化的信息,用于判断是否做出导航变化。
WKNavigationResponse
包含可能让网页导航变化的返回内容信息,用于判断是否做出导航变化。
WKPreferences
概括一个 webview 的偏好设置。
WKProcessPool
表示一个 web 内容加载池。
WKUserContentController
提供使用 JavaScript post 信息和注射 script 的方法。
WKScriptMessage
包含网页发出的信息。
WKUserScript
表示可以被网页接受的用户脚本。
WKWebViewConfiguration
初始化 webview 的设置。
WKWindowFeatures
指定加载新网页时的窗口属性。
WKWebsiteDataStore
包含网页数据存储和查找。
提供了追踪主窗口网页加载过程和判断主窗口和子窗口是否进行页面加载新页面的相关方法。
WKUIDelegate
提供用原生控件显示网页的方法回调。
WKScriptMessageHandler
提供从网页中收消息的回调方法。
初始化示例
WKNavigationDelegate
加载过程相关
页面跳转相关
WKScriptMessageHandler
用于native与网页端的交互
Cookie
通过脚本注入添加
Last updated
Was this helpful?