webview .....delegate

UIWebView的常规使用方法:

//加载网页或者本地文件
- (void)loadRequest:(NSURLRequest *)request;

//直接加载html内容,如果html中的图片等资源在本地目录,注意将baseURL指向该目录
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

//功能与上面类似
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

实现UIWebViewDelegate

主要使用到的方法
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*) reuqest navigationType:(UIWebViewNavigationType)navigationType;//当网页视图被指示载入内容而得到通知。应当返回YES,这样会进行加载。通过导航类型参数可以得到请求发起的原因,可以是以下任意值:  
    UIWebViewNavigationTypeLinkClicked //判断是否是点击事件 
    UIWebViewNavigationTypeFormSubmitted  
    UIWebViewNavigationTypeBackForward  
    UIWebViewNavigationTypeReload  
    UIWebViewNavigationTypeFormResubmitted  
    UIWebViewNavigationTypeOther 
通过
    NSURL *url = [request URL];
    NSString *curUrl= [url absoluteString];
可得到点击事件的URL

-(void)webViewDidStartLoad:(UIWebView*)webView ;//当网页视图已经开始加载一个请求后,得到通知。 
-(void)webViewDidFinishLoad:(UIWebView*)webView ;//当网页视图结束加载一个请求之后,得到通知。 
-(void)webView:(UIWebView*)webView  DidFailLoadWithError:(NSError*)error;//当在请求加载中发生错误时,得到通知。会提供一个NSSError对象,以标识所发生错误类型。

设置背景透明:webView.backgroundColor= [UIColor clearColor];webView.opaque=NO;
自动适配屏幕:webView.scalespageToFit = YES;
自动检测网页上的电话号码,点击可拨号:
webView.detectsPhoneNumbers = YES;
与js交互

我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。
1、获取当前页面的url- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
}

2、获取页面title- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];
}
posted @ 2016-01-06 15:55  zhen_zhen  阅读(183)  评论(0编辑  收藏  举报