1、最近公司做项目,项目中需要oc调用js。于是对关于这方面的只是做了一些总结。
一、UIWebView是一个加载网页视图的控件,进入API文件,里面的属性和方法也不是很多,算是一个比较简单UI控件。
UIWebView为什么可以滑动? 因为UIWebView的子控件中包含的UIScrollView
webView.scrollView.scrollEnabled = NO;//禁止webView的滑动效果
二、UIWebView加载HTML标签的3中方式
- (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;
1)、加载一个连接
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 400)];
[self.view addSubview:webView];
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];
[webView loadRequest:request];
2)、加载HTML字符串
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 400)];
[self.view addSubview:webView];
NSString *htmlStr = @"<body style=\"border: 1px solid\"><p>这是一段文字</p></body>";
[webView loadHTMLString:htmlStr baseURL:nil];
3)、加载NSData类型数据
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 400)];
[self.view addSubview:webView];
NSString *htmlStr = @"<body style=\"border: 1px solid\"><p>这是一段文字</p></body>";
NSData *data = [htmlStr dataUsingEncoding:NSUTF8StringEncoding];
[webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[[NSBundle mainBundle] bundleURL]];
三、UIWebView中 oc调用js 关键方法
- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
四、UIWebView的代理方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;//每当webView即将发送一个请求之前,都会调用这个方法
- (void)webViewDidStartLoad:(UIWebView *)webView;//webView已经加载
- (void)webViewDidFinishLoad:(UIWebView *)webView;//webView完成加载
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;//webView加载错误