第四章:第五節(jié) UIWebView

Step —?UIWebView

1、UIWebView常用方法

//1寇壳、聲明

@property(nonatomic,strong)?UIWebView*webView;

//1讥蔽、代理

UIWebViewDelegate

?/*2奇徒、ATS配置:

???? *info.plist添加字段:App Transport Security Settings - 字典

???? *Allow Arbitrary Loads - Boolean 設(shè)置為:YES

???? */


?/*3、幾種方法區(qū)別

??? - (void)loadRequest:(NSURLRequest *)request;一般加載指定地址的網(wǎng)頁(yè)巍膘,也可以加載本地文件(html、world芋簿、PDF峡懈、txt等)

??? - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;//直接用來(lái)加載html代碼

??? - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;//加載data

??? */

?/*4 加載本地文件

???? 1.加載網(wǎng)絡(luò)地址

??? NSString *urlStr = @"http://www.reibang.com";

??? NSURL *url = [NSURL URLWithString:urlStr];

??? */

?/*2.加載本地 html

??? NSString *path = [[NSBundle mainBundle] pathForResource:@"file_1" ofType:@"html"];

??? NSURL* url = [NSURL? fileURLWithPath:path];

??? */

?/*3.加載本地 world

???? NSString *path = [[NSBundle mainBundle] pathForResource:@"world" ofType:@"docx"];

???? NSURL *url = [NSURL fileURLWithPath:path];

???? */

?/*4.加載本地 pdf

??? NSString *path = [[NSBundle mainBundle] pathForResource:@"pdf" ofType:@"pdf"];

???? NSURL *url = [NSURL fileURLWithPath:path];

???? */

?/*4.加載本地 圖片

???? NSString *path = [[NSBundle mainBundle] pathForResource:@"photo" ofType:@"png"];

???? NSURL *url = [NSURL fileURLWithPath:path];

???? */

?//5.加載本地 txt

?NSString*path = [[NSBundlemainBundle]?pathForResource:@"txt"ofType:@"txt"];

?NSURL*url = [NSURLfileURLWithPath:path];


?NSURLRequest*request = [NSURLRequestrequestWithURL:url];

?//6、創(chuàng)建

?self.webView= [[UIWebViewalloc]?initWithFrame:self.view.bounds];

?self.webView.backgroundColor= [UIColorwhiteColor];

?self.webView.delegate=?self;

??? [self.webViewloadRequest:request];

??? [self.viewaddSubview:self.webView];


?//7与斤、屬性設(shè)置

?//網(wǎng)頁(yè)是否可以縮放

?self.webView.scalesPageToFit=?YES;

?// 設(shè)置某些數(shù)據(jù)變?yōu)殒溄有问椒究担@個(gè)枚舉可以設(shè)置如電話號(hào),地址撩穿,郵箱等轉(zhuǎn)化為鏈接

?self.webView.dataDetectorTypes=?UIDataDetectorTypeAll;

?//設(shè)置是否使用內(nèi)嵌播放器播放視頻

?self.webView.allowsInlineMediaPlayback=?YES;

?//設(shè)置視頻/音頻是否自動(dòng)播放

?self.webView.mediaPlaybackRequiresUserAction=?YES;

?//設(shè)置音頻播放是否支持 ari play 功能

?self.webView.mediaPlaybackAllowsAirPlay=?YES;

?//設(shè)置是否將數(shù)據(jù)加載內(nèi)存后渲染界面

?self.webView.suppressesIncrementalRendering=?YES;

?//設(shè)置是否打開(kāi)keyboard交互

?self.webView.keyboardDisplayRequiresUserAction=?YES;

?//設(shè)置分頁(yè)模式(網(wǎng)頁(yè)大小超出self.view)

?self.webView.paginationMode=?UIWebPaginationModeUnpaginated;

?//設(shè)置每頁(yè)的長(zhǎng)度

?self.webView.pageLength=?self.view.frame.size.height;

?//設(shè)置每頁(yè)的間距

?self.webView.gapBetweenPages=?self.view.frame.size.width;


?/*8磷支、常用方法

???? - (void)reload;//刷新

???? - (void)stopLoading;//暫停

???? - (void)goBack;//返回

???? - (void)goForward;//前進(jìn)

???? */

//9、代理

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

?NSLog(@"是否加載 %s",__func__);

?returnYES;

}

- (void)webViewDidStartLoad:(UIWebView*)webView{

?NSLog(@"開(kāi)始 %s",__func__);

}

- (void)webViewDidFinishLoad:(UIWebView*)webView{

?NSLog(@"完成 %s",__func__);

}

- (void)webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error{

?NSLog(@"失敗 %s",__func__);

}

2食寡、特殊用法

1.打電話

?NSString*strTel =[[NSStringalloc]?initWithFormat:@"tel:%@",@"182xxxx5502"];

?UIWebView*callWebview = [[UIWebViewalloc]?init];

[callWebview?loadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:strTel]]];

??? [self.viewaddSubview:callWebview];


2.safari打開(kāi)網(wǎng)頁(yè)中的地址

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

?NSLog(@"是否加載 %s",__func__);

?//在網(wǎng)頁(yè)中打開(kāi)safari

?if(navigationType ==?UIWebViewNavigationTypeLinkClicked) {

?//參數(shù)1雾狈;打開(kāi)APP的URL

?//參數(shù)2:可選字典參數(shù)。傳入一個(gè)空字典可以達(dá)到openURL:一樣的行為抵皱。

?//參數(shù)3:執(zhí)行成功后completionhandler在主隊(duì)列中回調(diào)善榛。

??????? [[UIApplicationsharedApplication]?openURL:[request?URL]?options:@{}completionHandler:nil];

?returnNO;

??? }


3.獲取web內(nèi)容

- (void)webViewDidFinishLoad:(UIWebView*)webView {

?/*

??? NSString *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

???? NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];//獲取當(dāng)前頁(yè)面的title

???? NSString *html = @"document.documentElement.innerHTML";//獲取當(dāng)前網(wǎng)頁(yè)的html

???? NSString *html2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('creditNum').innerText"];//獲取id為creditNum標(biāo)簽的值

???? NSString *html3 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('zmScore').value"];//獲取標(biāo)簽為id為zmScore的value

???? NSString *html4 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('p')[0].innerText"];//獲取標(biāo)簽第一個(gè)p的值

???? NSString *html5 = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText"];//獲取body里面的全部?jī)?nèi)容

????? NSLog(@"%@",NSStringFromSelector(_cmd));

???? */

}

3.和JS交互

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市呻畸,隨后出現(xiàn)的幾起案子锭弊,更是在濱河造成了極大的恐慌,老刑警劉巖擂错,帶你破解...
    沈念sama閱讀 212,294評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異樱蛤,居然都是意外死亡钮呀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)昨凡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)爽醋,“玉大人,你說(shuō)我怎么就攤上這事便脊÷焖模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,790評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵哪痰,是天一觀的道長(zhǎng)遂赠。 經(jīng)常有香客問(wèn)我,道長(zhǎng)晌杰,這世上最難降的妖魔是什么跷睦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,595評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮肋演,結(jié)果婚禮上抑诸,老公的妹妹穿的比我還像新娘烂琴。我一直安慰自己,他們只是感情好蜕乡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,718評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布奸绷。 她就那樣靜靜地躺著,像睡著了一般层玲。 火紅的嫁衣襯著肌膚如雪号醉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,906評(píng)論 1 290
  • 那天称簿,我揣著相機(jī)與錄音扣癣,去河邊找鬼。 笑死憨降,一個(gè)胖子當(dāng)著我的面吹牛父虑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播授药,決...
    沈念sama閱讀 39,053評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼士嚎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了悔叽?” 一聲冷哼從身側(cè)響起莱衩,我...
    開(kāi)封第一講書(shū)人閱讀 37,797評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娇澎,沒(méi)想到半個(gè)月后笨蚁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趟庄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,570評(píng)論 2 327
  • 正文 我和宋清朗相戀三年括细,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片戚啥。...
    茶點(diǎn)故事閱讀 38,711評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奋单,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猫十,到底是詐尸還是另有隱情览濒,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評(píng)論 4 332
  • 正文 年R本政府宣布拖云,位于F島的核電站贷笛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏宙项。R本人自食惡果不足惜昨忆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,018評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杉允。 院中可真熱鬧邑贴,春花似錦席里、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,796評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至繁疤,卻和暖如春咖为,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稠腊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工躁染, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人架忌。 一個(gè)月前我還...
    沈念sama閱讀 46,461評(píng)論 2 360
  • 正文 我出身青樓吞彤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親叹放。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饰恕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,595評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • iOS開(kāi)發(fā)系列--網(wǎng)絡(luò)開(kāi)發(fā) 概覽 大部分應(yīng)用程序都或多或少會(huì)牽扯到網(wǎng)絡(luò)開(kāi)發(fā),例如說(shuō)新浪微博井仰、微信等埋嵌,這些應(yīng)用本身可...
    lichengjin閱讀 3,648評(píng)論 2 7
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,340評(píng)論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,093評(píng)論 1 32
  • IOS之UIWebView的使用 剛接觸IOS開(kāi)發(fā)1年多,現(xiàn)在對(duì)于 混合式 移動(dòng)端開(kāi)發(fā)越來(lái)越流行俱恶,因?yàn)殚_(kāi)發(fā)成本上雹嗦、...
    學(xué)無(wú)止境666閱讀 45,778評(píng)論 5 53
  • OS之UIWebView的使用 剛接觸IOS開(kāi)發(fā)1年多吠谢,現(xiàn)在對(duì)于 混合式 移動(dòng)端開(kāi)發(fā)越來(lái)越流行荡含,因?yàn)殚_(kāi)發(fā)成本上、速...
    知之未道閱讀 1,653評(píng)論 0 4