開篇前:UIWebView的loadRequest可以用來加載一個url地址,它需要一個NSURLRequest參數(shù)。我們定義一個方法用來加載url。在UIWebViewDemoViewController中定義下面方法:
- (void)loadWebPageWithString:(NSString*)urlString
{
NSURL *url =[NSURLURLWithString:urlString];
NSLog(urlString);
NSURLRequest *request =[NSURLRequestrequestWithURL:url];
[webView loadRequest:request];
}
1.1設(shè)置三個控件textfield button uiwebview
1.2如圖:圖就算了,半天傳不上來,uiwebview在下面就行了,看著舒服就行,隨便放。
1.3:在代碼中定義相關(guān)的控件:webView用于展示網(wǎng)頁、textField用于地址欄、activityIndicatorView用于加載的動畫、buttonPress用于按鈕的點擊事件
@interfaceUIWebViewDemoViewController
:UIViewController {
IBOutletUIWebView *webView;
IBOutletUITextField *textField;
UIActivityIndicatorView
*activityIndicatorView;
}
-
(IBAction)buttonPress:(id) sender;
-
(void)loadWebPageWithString:(NSString*)urlString;
@end
使用IB關(guān)聯(lián)他們。
設(shè)置UIWebView,初始化UIActivityIndicatorView
- (void)viewDidLoad
{
[super viewDidLoad];
webView.scalesPageToFit =YES;
webView.delegate=self;
activityIndicatorView = [[UIActivityIndicatorView alloc]
initWithFrame : CGRectMake(0.0f,0.0f,32.0f,32.0f)] ;
[activityIndicatorView setCenter: self.view.center] ;
[activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;
[self.view addSubview : activityIndicatorView] ;
[self buttonPress:nil];
}
UIWebView主要有下面幾個委托方法:(這三個委托方法應(yīng)該是自帶的吧?以后用xcode查清楚???)
1、- (void)webViewDidStartLoad:(UIWebView *)webView;開始加載的時候執(zhí)行該方法。
2、-(void)webViewDidFinishLoad:(UIWebView *)webView;加載完成的時候執(zhí)行該方法。
3、-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加載出錯的時候執(zhí)行該方法。
我們可以將activityIndicatorView放置到前面兩個委托方法中。
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[activityIndicatorViewstartAnimating] ;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[activityIndicatorViewstopAnimating];
}
buttonPress方法很簡單,調(diào)用我們開始定義好的loadWebPageWithString方法就行了:
- (IBAction)buttonPress:(id) sender
{
[textField? resignFirstResponder];
[self?loadWebPageWithString:textField.text];
}
當請求頁面出現(xiàn)錯誤的時候,我們給予提示:
- (void)webView:(UIWebView *)webView? didFailLoadWithError:(NSError?*)error
{
UIAlertView *alterview =? [[UIAlertView alloc] initWithTitle:@""?message:[error? localizedDescription]? delegate:nil?cancelButtonTitle:nil?otherButtonTitles:@"OK",? nil];
[alterview show];
[alterview release];