UIWebView的用法

(1)创建
UIWebView *myWebView=[[UIWebViewalloc] initWithFrame:CGRectMake(0, 20, 320, 300)];
 (2)加载网页

     NSURL *url=[NSURLURLWithString:@"http://www.google.com.hk"];

     NSURLRequest *request=[[NSURLRequestallocinitWithURL:url];

     [myWebView loadRequest:request]; 
(3)是否与用户交互(即用户能不能控制webview)
     [myWebView setUserInteractionEnabled:YES];  
(4)显示 UIWebView
     [self.view addSubview:myWebView];
(5)导航
     [webView goBack];//返回
 [webView goForward];//向前
 [webView reload];//重新加载数据
     [webView stopLoading];//停止加载数据
(6)委托
     1.-(BOOL)webView:(UIWebView *)webView  shouldStartLoadWithRequest:(NSURLRequest *)request
          navigationType:(UIWebViewNavigationType)navigationType;
web视图指示加载内容时通知。应该返回YES开始加载。导航提供的类型参数,是指请求的来源,可以是下列任何一个:
     UIWebViewNavigationTypeLinkClicked
     UIWebViewNavigationTypeFormSubmitted
     UIWebViewNavigationTypeBackForward
     UIWebViewNavigationTypeReload
     UIWebViewNavigationTypeFormResubmitted
     UIWebViewNavigationTypeOther

     2.-(void)webViewDidStartLoad:(UIWebView *)webView;//当开始请求的时候被通知      3.-(void)webViewDidFinishLoad:(UIWebView *)webView;//当结束请求的时候被通知      4.-(void)webView:(UIWebView *)webView  didFailLoadWithError:(NSError *)error;//当请求中出现错误时被通知
(7)UIWebView和JS交互
     1》在Objective-C代码中调用JS
 
     使用 stringByEvaluatingJavaScriptFromString方法,需要等到UIWebView中的页面加载完成之后去调用。

     -(void) webViewDidFinishLoad:(UIWebView *)webView{

         [self.activityViewstopAnimating];

 

         [myWebView stringByEvaluatingJavaScriptFromString:@"function test(){ alert(123123123)}"];

         [myWebView stringByEvaluatingJavaScriptFromString:@"test();"];//调用

     }
     2》在JS中调用Objective-C代码
 
JS代码:
  1. function sendCommand(cmd,param){  
  2.     var url="testapp:"+cmd+":"+param;  
  3.     document.location = url;  
  4. }  
  5. function clickLink(){  
  6.     sendCommand("alert","你好吗?");  
  7. }  
 
Objective-C代码:
  1. - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {  
  2.       
  3.     NSString *requestString = [[request URL] absoluteString];  
  4.     NSArray *components = [requestString componentsSeparatedByString:@":"];  
  5.     if ([components count] > 1 && [(NSString *)[components objectAtIndex:0] isEqualToString:@"testapp"]) {  
  6.         if([(NSString *)[components objectAtIndex:1] isEqualToString:@"alert"])   
  7.         {  
  8.             UIAlertView *alert = [[UIAlertView alloc]   
  9.                                   initWithTitle:@"Alert from Cocoa Touch" message:[components objectAtIndex:2]  
  10.                                   delegate:self cancelButtonTitle:nil  
  11.                                   otherButtonTitles:@"OK", nil];  
  12.             [alert show];  
  13.         }  
  14.         return NO;  
  15.     }  
  16.     return YES;  
  17. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值