在最近的項(xiàng)目中 經(jīng)常要用到UIWebView宾巍,所以 小弟不才 特意學(xué)習(xí)總結(jié)了一下。
UIWebView代理方法
在webView的代理方法中载慈,我就介紹一些個(gè)人認(rèn)為比較有用的缸匪。
這個(gè)方法看名字就知道,就是WebView加載完成的時(shí)候調(diào)用准夷。
這個(gè)時(shí)候钥飞,可以在這里面添加一些JS代碼,來實(shí)現(xiàn)webView和JS的交互衫嵌。
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
}
這個(gè)是每發(fā)送一次請(qǐng)求都會(huì)調(diào)用一次读宙,也就是我們可以通過這個(gè)方法監(jiān)聽WebView上面的點(diǎn)擊事件。
參數(shù)request 包括了請(qǐng)求的地址等信息楔绞。
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
}
UIWebView和JS的簡單交互
在WebView中因?yàn)橛?code>stringByEvaluatingJavaScriptFromString 這個(gè)方法结闸,使得WebView和JS交互變成有可能的事情唇兑,那么下面我們就來看看一些 基礎(chǔ)的應(yīng)用。
當(dāng)然所有的JS應(yīng)當(dāng)在WebView 加載完成的前提之下進(jìn)行桦锄,也就是 webViewDidFinishLoad
里面
從網(wǎng)頁獲取URL
-(NSURL *)url
{
NSString *urlString = [self.webView stringByEvaluatingJavaScriptFromString:@"location.href"];
if (urlString )
{
return [NSURL URLWithString:urlString];
}
else
{
return nil;
}
}
從網(wǎng)頁獲取標(biāo)題
-(NSString *)title
{
return [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
網(wǎng)頁的滾動(dòng)位置
-(CGPoint)point
{
CGPoint pt;
pt.x = [[_webView stringByEvaluatingJavaScriptFromString:@"window,pageXOffset"] integerValue];
pt.y = [[_webView stringByEvaluatingJavaScriptFromString:@"window,pageYOffset"] integerValue];
return pt;
}
獲取頁面里面的icon
[web.request.URL scheme]
這個(gè)就像文檔敘述的那樣扎附,代表簽名的協(xié)議頭,例如http://www.baidu.com
察纯,那么這個(gè)就是 http://
[web.request.URL host]
這個(gè)就是后面的地址主機(jī)帕棉,就是 www.baidu.com
path 里面填寫的是圖片的名稱针肥。
NSURL *url = [[NSURL alloc] initWithScheme:[web.request.URL scheme] host:[web.request.URL host] path:@"/favicon.ico"];
調(diào)整webView里的字體大小
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '500%'"];
參考的致謝
http://www.cocoachina.com/industry/20121123/5167.html
還有許多高級(jí)用法饼记,我暫時(shí)用不到所以先不看,感興趣可以去上面的鏈接 學(xué)習(xí)慰枕。