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"]; }