UIWebView
IOS系統(tǒng)提供了 UIWebView 控件,從而可以方便地集成與網(wǎng)頁相關(guān)的多種應(yīng)用,該控件內(nèi)置瀏覽器控件,可以用來瀏覽網(wǎng)頁、打開文檔等等。
?
一、UIWebView 可以加載和顯示某個URL的網(wǎng)頁,也可以顯示基于HTML的本地網(wǎng)頁或部分網(wǎng)頁:
a. 加載 URL
b. 加載 HTML
NSBundle *bundle = [NSBundle mainBundle];NSString *resPath = [bundle resourcePath];
NSString *filePath?= [resPath stringByAppendingPathComponent:@"Home.html"];
[webView loadHTMLString:[NSString stringWithContentsOfFile:filePath]
??baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]];
二、使用網(wǎng)頁加載指示,加載完成后再顯示網(wǎng)頁出來
????首先要指定委托方法:
???????webView.delegate?=self;?
????UIWebView主要有下面幾個委托方法:
??????1、- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載的時候執(zhí)行該方法。
??????2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加載完成的時候執(zhí)行該方法。
??????3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載出錯的時候執(zhí)行該方法。
?????這樣,可以利用 webViewDidStartLoad 和 webViewDidFinishLoad 方法實現(xiàn)本功能:????????
三、UIWebView還可以通過 stringByEvaluatingJavaScriptFromString 函數(shù)來執(zhí)行 javascript代碼,從而可以更加靈活地處理網(wǎng)頁文件
??1. 獲得UIWebView的標題
NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];
??2. 獲取頁面的URL
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
??3. 修改頁面元素的值
NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];
??4. 表單提交
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]?
四、綜合運用以上方法,還可以實現(xiàn)部分網(wǎng)頁的顯示,基本思路如下:
????1. 用 loadRequest 先獲取網(wǎng)頁,但先設(shè)置 UIWebView.hidden = YES;
????2. 在 webViewDidFinishLoad 中,用
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_x_x('xxxx').innerHTML; "] 獲取指定標簽元素的HTML代碼 3. 再使用 loadHTMLString 加載該HTML代碼,即可轉(zhuǎn)載于:https://www.cnblogs.com/mumoozhu/p/4582814.html
總結(jié)
- 上一篇: Mysql中explain命令查看语句执
- 下一篇: Nim教程【十二】