UIWebView的使用

1-基本使用方法

1.创建UIWebView

  • CGRect bounds = CGRectMake(0,0, self.view.bounds.size.width, self.view.bounds.size.height 100);
  •     UIWebView* webView = [[UIWebView alloc]initWithFrame:bounds];

2.设置属性

  • webView.scalesPageToFit = YES;//自动对页面进行缩放以适应屏幕
  •     [webView setUserInteractionEnabled:YES];//是否支持交互

3.加载内容

a. 加载网络资源

  • NSURL *url = [NSURL URLWithString:@“http://www.hcios.com”];//创建url(统一资源定位符,互联网标准资源的地址)
  •         NSURLRequest *urlRequest = [[NSURLRequest alloc]initWithURL:url];//创建NSURLRequest
  •         [webView loadRequest:urlRequest];//加载

b.加载本地资源

  • NSString* filePath = [[NSBundle mainBundle]pathForResource:@“1” ofType:@“jpg”];//本地资源路径
  •         NSURL* localUrl = [NSURL fileURLWithPath:filePath];//创建本地资源URL
  •         NSURLRequest* request = [NSURLRequest requestWithURL:localUrl];//创建NSURLRequest
  •         [webView loadRequest:request];//加载

4.显示WebView

[self.view addSubview:webView];

2-代理方法

UIWebView支持一组委托方法,这些方法将在特定时间得到通知。要使用这些方法,必须先设定webView的委托

1.设置代理

webView.delegate = self;

2.是否允许UIWebView加载请求的方法

当返回值为NO,表示不允许加载此请求

(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

3.UIWebView控件加载网页的监听函数方法

当WebView已经开始加载一个请求后,得到通知。

(void)webViewDidStartLoad:(UIWebView *)webView;

当WebView完成加载一个请求之后,得到通知。

(void)webViewDidFinishLoad:(UIWebView *)webView;

当WebView在请求加载中发生错误时,得到通知。提供一个NSSError对象,以标识所发生错误类型。

(void)webView:(UIWebView *)webView didFailLoadWithError🙁nullable NSError *)error;

3-浏览控制功能

UIWebView类内部会管理浏览器的导航动作,通过goForward和goBack方法你可以控制前进与后退动作,通过reload和stoploading可以实现刷新和停止加载。

1.goForward和goBack实现前进与后退

  • [webView goBack];
  • [webView goForward];

2.canGoBack和canGoForward

canGoForward和canGoBack可以判断当前的页面是否可以前进或者后退,是一个只读的属性,你无法去修改,你可以用下面的代码中展示的方法去使用这两个属性,我们可以利用这两个属性来设置后退和前进按钮的状态。

  • //判断前进和后退按钮是否可以点击
  •   backBtn.enabled = myWebView.canGoBack;
  •   forwardBtn.enabled = myWebView.canGoForward;

3.reload和stop loading实现刷新与停止加载

  • [webView reload];
  • [webView stopLoading];

4.利用按钮实现后退功能

  • //设置后退按钮
  • goBackBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, bounds.size.height+60, bounds.size.width/3, 90)];
  • goBackBtn.backgroundColor = [UIColor grayColor];
  • [goBackBtn setTitle:@“回退” forState:UIControlStateNormal];
  • [goBackBtn addTarget:self action:@selector(goBack🙂 forControlEvents:UIControlEventTouchUpInside];
  • //回退功能实现
  • -(void)goBack: (NSString *) goBackbtn{
  •     [webView goBack];
  • }

一、使用UIWebView 将web content 嵌入到应用上。

API提供了三种方法:

  1. – (void)loadRequest:(NSURLRequest *)request;
  2. – (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
  3. – (void)loadData:(NSData *)data MIMEType:(NSString *)
  4. MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

1、直接给出url地址即可将web content载入。

  1. NSString *path = @”http://theo2life.com“;
  2. NSURL *url = [[NSURL alloc] initWithString:path];
  3. [self.webView loadRequest:[NSURLRequest requestWithURL:url]];

2、将本地html文件内容嵌入webView

  1. NSString *resourcePath = [ [NSBundle mainBundle] resourcePath];
  2. NSString *filePath = [resourcePath stringByAppendingPathComponent:@”test.html”];
  3. NSString *htmlstring =[[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
  4. [self.webView loadHTMLString:htmlstring baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];

如果不从html文件载入你也可以这样:

  1. NSString *HTMLData = @”<img src=\”test2.png\” />ddd”;
  2. [self.webView loadHTMLString:HTMLData baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]];
  3. baseURL:[NSURL fileURLWithPath: [[NSBundle mainBundle] bundlePath]]

这段指出HTMLData所引用的其他文件资源的基本路径,如果baseURL:nil图片信息将不会显示出来~

3、同2,更详细的给出了web content的编码方式。

二、其他操作:

如果载入的web布局大过ipad尺寸发现超出的部分会是空白,则设置webView.scalesPageToFit = YES;让web content布局适应webView。

分享到: 更多
Separator image Posted in IOS.