iOS關(guān)于webView(三)-webView使用技巧

h5太火了,越來越多的公司喜歡混合開發(fā)?,F(xiàn)在公司各種web頁面,使用靈活(主要是蘋果審核太慢了)。本人在Stack Overflow看過一篇文章意思是蘋果也比較推薦app中適量的web頁面,當(dāng)然全web直接會被拒的。

一個吊吊的控件webView

這是一個非常強大的控件,給一個地址就能加載web頁面,所以以后不會的難得就讓web做哈哈。
首先最好掌握點html和css語言,還好大學(xué)學(xué)的還沒有忘完,書到用時方恨少啊。

介紹方法時會介紹一些使用場景

  • 加載內(nèi)容

//加載網(wǎng)絡(luò)
NSURL* url = [NSURL URLWithString:@"http://www.baidu.com"];//創(chuàng)建URL

NSURLRequest* request = [NSURLRequest requestWithURL:url];//創(chuàng)建NSURLRequest
[webView loadRequest:request];//加載

//也可以加載一個本地資源:
NSURL* url = [NSURL fileURLWithPath:filePath];//創(chuàng)建URL
NSURLRequest* request = [NSURLRequest requestWithURL:url];//創(chuàng)建NSURLRequest
[webView loadRequest:request];//加載

//UIWebView 還支持將一個NSString對象作為源來加載。你可以為其提供一個基礎(chǔ)URL,來指導(dǎo)UIWebView對象如何跟隨鏈接和加載遠(yuǎn)程資源:
[webView loadHTMLString:myHTML baseURL:[NSURL URLWithString:@"http://baidu.com"]];

- ####導(dǎo)航
你會遇到這個問題在webView頁面點擊進(jìn)去新的頁面,點擊返回pop整個頁面。一般做法會在左上角設(shè)置兩個按鈕一個pop一個控制webView返回。

//UIWebView類內(nèi)部會管理瀏覽器的導(dǎo)航動作,通過goForward和goBack方法你可以控制前進(jìn)與后退動作:
[webView goBack];

[webView goForward];

[webView reload];//重載

[webView stopLoading];//取消載入內(nèi)容

- ####代理方法
經(jīng)常在web頁面加載gif等待圖片,通常是通過代理方法實現(xiàn),結(jié)合1和2代理方法。

1、- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載的時候執(zhí)行該方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加載完成的時候執(zhí)行該方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載出錯的時候執(zhí)行該方法。
4、- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType;在該代理方法中判斷與webView的交互,可通過html里定義。

方法2是一個很重要的代理方法,如何對這個web頁面動手術(shù)都是在里面進(jìn)行的:
######~eg:
 - [計算 webView 顯示內(nèi)容后實際高度](http://www.itdecent.cn/p/f3aa4852e7de)
 - [改變UIWebView背景色](http://www.itdecent.cn/p/e8eb63b4b3fd)
 總結(jié)一下`stringByEvaluatingJavaScriptFromString`這個方法他是調(diào)用js的方法。所以你可以做很多事(但是你要會js)。
- ####下載到本地在加載到webView

NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle] resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];

NSString *filePath = [resourceDocPath stringByAppendingPathComponent:[NSString stringWithFormat:@"doc%@",docType]];
NSData *attachmentData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:theUrl]];

[attachmentData writeToFile:filePath atomically:YES];

NSURL *url = [NSURL fileURLWithPath:filePath];

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

[attachmentWebView loadRequest:requestObj];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 4,022評論 2 7
  • IOS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對于 混合式 移動端開發(fā)越來越流行,因為開發(fā)成本上、...
    學(xué)無止境666閱讀 46,002評論 5 53
  • OS之UIWebView的使用 剛接觸IOS開發(fā)1年多,現(xiàn)在對于 混合式 移動端開發(fā)越來越流行,因為開發(fā)成本上、速...
    知之未道閱讀 1,710評論 0 4
  • 現(xiàn)在對于 混合式 移動端開發(fā)越來越流行,因為開發(fā)成本上、速度上都比傳統(tǒng)的APP開發(fā)要好,混合式開發(fā)是傳統(tǒng)模式與P...
    丶紳士丿丨丨閱讀 2,295評論 1 2
  • 近些時日諸務(wù)纏身,越是如此心神愈是易于疲憊,接二連三的身體也狀況不止,全被外物牽著神意走。 “修行人心欲...
    060宋丹閱讀 251評論 0 0

友情鏈接更多精彩內(nèi)容