1 概念性知識(shí)
? ? 01 webView是有缺點(diǎn)的,會(huì)導(dǎo)致內(nèi)存泄露聋呢,而且這個(gè)問題是它系統(tǒng)本身的問題拨齐。
? ? 02 手機(jī)上面的safai其實(shí)就是用webView來實(shí)現(xiàn)的。
? ? 03 現(xiàn)在的開發(fā)并不完全是原生的開發(fā)颠猴,而更加傾向于原生+Html5的方式。
? ? 04 webView是OC代碼和html代碼之間進(jìn)行交互的橋梁小染。
2 代碼相關(guān)
? ?A網(wǎng)頁操控相關(guān)方法
? ? ?[self.webView goBack];? ? ? 回退
? ? ?[self.webView goForward];? 前進(jìn)
? ? ?[self.webView reload];? ? ? 刷新
? ? ?self.goBackBtn.enabled = webView.canGoBack;? 設(shè)置是否能回退
? ? ?self.fowardBtn.enabled = webView.canGoForward;? 設(shè)置是否能前進(jìn)
? B常用的屬性設(shè)置
? ? self.webView.scalesPageToFit = YES; 設(shè)置網(wǎng)頁自動(dòng)適應(yīng)
? ? self.webView.dataDetectorTypes = UIDataDetectorTypeAll; 設(shè)置檢測網(wǎng)頁中的格式類型翘瓮,all表示檢測所有類型包括超鏈接、電話號(hào)碼裤翩、地址等资盅。
? C相關(guān)代理方法
? ? 每當(dāng)將加載請(qǐng)求的時(shí)候調(diào)用該方法,返回YES 表示加載該請(qǐng)求踊赠,返回NO 表示不加載該請(qǐng)求,可以在該方法中攔截請(qǐng)求呵扛。
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest: ?(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
return ![request.URL.absoluteString containsString:@"dushu"];
} ??
? ? ?開始加載網(wǎng)頁,不僅監(jiān)聽我們指定的請(qǐng)求筐带,還會(huì)監(jiān)聽內(nèi)部發(fā)送的請(qǐng)求
-(void)webViewDidStartLoad:(UIWebView *)webView
? ? 網(wǎng)頁加載完畢之后會(huì)調(diào)用該方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
? ? 網(wǎng)頁加載失敗調(diào)用該方法
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
? ?D其它知識(shí)點(diǎn)-加載本地資源
NSURL *url = [[NSBundle mainBundle] URLForResource:@"text.html" withExtension:nil];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];