標籤:uiwebview webview 網路
首先建立UIWebView,這個不難,設定frame,然後添加到self.view上即可:
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds];webView.scalesPageToFit = YES;//自動對頁面進行縮放以適應螢幕[self.view addSubview:webView];
UIWebView載入網路地址
用UIWebView來載入網路地址,那我的部落格:http://blog.csdn.net/dylan_lwb_ 來舉例。代碼如下:
NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://blog.csdn.net/dylan_lwb_"]];[self.view addSubview:webView];[webView loadRequest:request];
UIWebView載入本地資源通過NSURLRequest載入
NSString *path = [[NSBundle mainBundle] pathForResource:@"swift" ofType:@"html"];NSURL* url = [NSURL fileURLWithPath:path];//建立URLNSURLRequest* request = [NSURLRequest requestWithURL:url];//建立NSURLRequest[webView loadRequest:request];//載入
通過NSString載入
UIWebView 還支援將一個NSString對象作為源來載入。你可以為其提供一個基礎URL,來指導UIWebView對象如何跟隨連結和載入遠端資源:
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];[webView loadHTMLString:htmlString baseURL:[NSURL URLWithString:path]];
自動檢測電話
設定這個屬性,如果在載入的網頁中遇到電話號碼,直接單擊就可以撥打,非常方便:
webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber;//自動檢測網頁上的電話號碼,單擊可以撥打
設定代理和代理方法
UIWebView有五個代理方法,我們可以在不同的代理方法中,完成不同的需求。
//設定代理webView.delegate = self;//代理方法- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ //返回YES,進行載入。通過UIWebViewNavigationType可以得到請求發起的原因 return YES;}- (void)webViewDidStartLoad:(UIWebView *)webView{ //開始載入,可以加上風火輪(也叫菊花)}- (void)webViewDidFinishLoad:(UIWebView *)webView{ //完成載入}- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{ //載入出錯}
建立載入他、停止、後退、前進按鈕
建立四個按鈕,分別是載入按鈕、停止按鈕、返回按鈕、前進按鈕:
NSArray *array = [NSArray arrayWithObjects:@"載入",@"停止",@"返回",@"前進", nil]; int far = (SCREEN.width - 200)/5; for (int i = 0; i < array.count; i++) { UIButton *button = [[UIButton alloc] init]; button.frame = CGRectMake( (i + 1) * far + 50 * i, SCREEN.height - 60, 50, 40); button.tag = 200 + i; [button addTarget:self action:@selector(actionClick:) forControlEvents:UIControlEventTouchUpInside]; [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal]; [button setBackgroundColor:[UIColor orangeColor]]; [button setTitle:array[i] forState:UIControlStateNormal]; [self.view addSubview:button]; }
前進後退
給四個按鈕綁定事件,根據tag值來區分每一個點擊事件:
- (void)actionClick:(UIButton *)button{ switch (button.tag) { case 200: { [self.webView reload];//載入 } break; case 201: { [self.webView stopLoading];//停止載入 } break; case 202: { [self.webView goBack];//返回 } break; case 203: { [self.webView goForward];//前進 } break; default: break; }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
iOS UIWebView用法