国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[iOS基礎(chǔ)控件-7.0]UIWebView

2019-11-14 19:35:58
字體:
供稿:網(wǎng)友
A.基本使用
1.概念
iOS內(nèi)置的瀏覽器控件
Safari瀏覽器就是通過UIWebView實(shí)現(xiàn)的
 
2.用途:制作簡(jiǎn)易瀏覽器
(1)基本請(qǐng)求
創(chuàng)建請(qǐng)求
加載請(qǐng)求
(2)代理監(jiān)聽webView加載,例如提示正在加載
(3)前進(jìn)、后退
使用NavigationController,在底部加上導(dǎo)航欄(勾選showToolBar),加上回退和前進(jìn)按鈕
(4)給頂部導(dǎo)航欄加上地址欄
UISearchBar
代理監(jiān)聽“搜索”按鈕,提取地址欄文本
 
simpleBrowser
 
 
 
Image(55)
 
 1 // 2 //  ViewController.m 3 //  UIWebViewdDemo 4 // 5 //  Created by hellovoidworld on 15/1/30. 6 //  Copyright (c) 2015年 hellovoidworld. All rights reserved. 7 // 8  9 #import "ViewController.h"10 11 @interface ViewController () <UISearchBarDelegate, UIWebViewDelegate>12 13 @PRoperty (weak, nonatomic) IBOutlet UIWebView *webView;14 15 @property (weak, nonatomic) IBOutlet UIBarButtonItem *backButton;16 @property (weak, nonatomic) IBOutlet UIBarButtonItem *forwardButton;17 - (IBAction)back:(UIBarButtonItem *)sender;18 - (IBAction)forward:(UIBarButtonItem *)sender;19 20 @end21 22 @implementation ViewController23 24 - (void)viewDidLoad {25     [super viewDidLoad];26     // Do any additional setup after loading the view, typically from a nib.27    28     // 創(chuàng)建一個(gè)搜索欄29     UISearchBar *searchBar = [[UISearchBar alloc] init];30     searchBar.frame = CGRectMake(0, 0, 300, 40);31     searchBar.delegate = self;32    33     self.navigationItem.titleView = searchBar;34    35     self.webView.delegate = self;36 }37 38 39 40 - (IBAction)back:(UIBarButtonItem *)sender {41     NSLog(@"后退");42     [self.webView goBack];43 }44 45 - (IBAction)forward:(UIBarButtonItem *)sender {46     NSLog(@"前進(jìn)");47     [self.webView goForward];48 }49 50 #pragma mark - UIWebViewDelegate51 - (void)webViewDidStartLoad:(UIWebView *)webView {52     NSLog(@"開始加載");53 }54 55 - (void)webViewDidFinishLoad:(UIWebView *)webView {56     NSLog(@"完成加載");57 58     // 設(shè)置后退、前進(jìn)按鈕59     if ([self.webView canGoBack]) {60         self.backButton.enabled = YES;61     } else {62         self.backButton.enabled = NO;63     }64    65     if ([self.webView canGoForward]) {66         self.forwardButton.enabled = YES;67     } else {68         self.forwardButton.enabled = NO;69     }70 }71 72 #pragma mark - UISearchBarDelegate73 /** 點(diǎn)擊搜索按鈕(虛擬鍵盤上) */74 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {75     NSString *str = searchBar.text;76     NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", str]];77     NSURLRequest *request = [NSURLRequest requestWithURL:url];78    79     [self.webView loadRequest:request];80 }81  82 @end
 
3.加載本地資源
html、txt、doc、PPT、MP4、pdf
直接請(qǐng)求即可
 
4.自動(dòng)識(shí)別電話、郵箱、地址
    // 識(shí)別所有類型的數(shù)據(jù)
    self.webView.dataDetectorTypes = UIDataDetectorTypeAll;
 
B.其他用途
1.OC執(zhí)行javascript
runJs
 
1 /** 運(yùn)行js代碼 */2 - (IBAction)runJs {3     NSString *str = @"alert('hello, world!');";4     [self.webView stringByEvaluatingJavascriptFromString:str];5 }
 
 
2.javascript調(diào)用OC
在javascript中發(fā)送網(wǎng)頁請(qǐng)求,使用OC截取,根據(jù)內(nèi)容判斷調(diào)用相應(yīng)方法
 
這里使用js代碼呼出相冊(cè)選擇:
callOC
 
網(wǎng)頁 & js 代碼:
 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>運(yùn)行OC代碼</title> 8 </head> 9 <body>10  11      <script type="text/javascript">12           function runOC() {13                window.location.href="ios://openAlbum";14           }15      </script>16  17      <input type="button" value="運(yùn)行OC代碼" onclick="runOC();" />18    19 </body>20 </html>
 
OC代碼:
 1 /** webView發(fā)送請(qǐng)求之前都會(huì)調(diào)用,可以攔截請(qǐng)求,選擇加載(返回YES)還是不加載(返回NO)*/ 2 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 3     4     // 攔截請(qǐng)求 5     NSString *urlStr = request.URL.absoluteString; 6     NSRange range = [urlStr rangeOfString:@"ios://"]; 7     8     // 如果是ios請(qǐng)求 9     if (range.length != 0) {10         // 方法名11         NSString *method = [urlStr substringFromIndex:range.location + range.length];12        13         // 包裝SEL14         SEL selector = NSSelectorFromString(method);15        16         // 執(zhí)行方法17         [self performSelector:selector withObject:nil];18     }19    20     return YES;21 }22 23 /** 打開相冊(cè) */24 - (void) openAlbum {25     // 創(chuàng)建一個(gè)相片選擇控制器26     UIImagePickerController *imagePC = [[UIImagePickerController alloc] init];27     [imagePC setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; // 使用相冊(cè)來源28    29     [self presentViewController:imagePC animated:YES completion:^{30         NSLog(@"呼出相冊(cè)");31     }];32 }

 

 
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 尼勒克县| 桐柏县| 安塞县| 昭通市| 兴义市| 黄山市| 乐业县| 即墨市| 西城区| 特克斯县| 长治市| 观塘区| 家居| 马关县| 荃湾区| 弋阳县| 南陵县| 武强县| 鄯善县| 甘孜县| 永丰县| 泽库县| 安溪县| 安宁市| 徐州市| 海口市| 铁力市| 罗源县| 鹤峰县| 南召县| 宜兴市| 巴林右旗| 仪征市| 离岛区| 襄樊市| 大连市| 广南县| 大化| 土默特右旗| 调兵山市| 甘洛县|