ios UIWebView与web的交互

最近重构了一个项目,中间大量运用了原生的项目与web的交互,因为此前接触的web仅仅只是展示一下内容,如企业的注册协议及联系方式等信息。因此学习并整理了一下中间的用法,希望给有需要的人参考。

//当程序以UIWebView以loadRequest进行加载的时候就会调用到此函数,然后执行webViewDidStartLoad函数,所以我们可以在此函数中进行一些请求解析,URL地址分析的工作。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. {  
  2.     NSURL * url = [request URL];  
  3.     NSString *str =[url absoluteString];  
  4.       
  5.     if ([str rangeOfString:@"webSetTitle" options:NSCaseInsensitiveSearch].length>0) {  
  6.         NSString *title = [[[url path componentsSeparatedByString:@"/"] objectAtIndex:2];  
  7.         NSString *dataGBK = [title stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
  8.         [self setWebSetTitle:dataGBK];  
  9.         return YES;  
  10.     }else if ([str rangeOfString:@"webGetSession" options:NSCaseInsensitiveSearch].length>0){  
  11.         NSString *callback = [[[url path componentsSeparatedByString:@"/"] objectAtIndex:1];  
  12.         [self  getNativeSessionID:callback];  
  13.         return YES;  
  14.     }else if ([str rangeOfString:@"webLogin" options:NSCaseInsensitiveSearch].length>0){  
  15.         NSString *callback = [[[url path componentsSeparatedByString:@"/"] objectAtIndex:1];  
  16.         [self getWebLogin:callback];  
  17.         [[NSUserDefaults standardUserDefaults] setObject:callback forKey:@"callback"];  
  18.         [[NSUserDefaults standardUserDefaults] synchronize];  
  19.         return YES;  
  20.     }else if ([str rangeOfString:@"webGoHome" options:NSCaseInsensitiveSearch].length>0){  
  21.       NSString *page = [[[url path componentsSeparatedByString:@"/"] objectAtIndex:2];  
  22.         [self popPage:page];  
  23.         return YES;  
  24.     }else  if ([str rangeOfString:@"webPayOrder" options:NSCaseInsensitiveSearch].length>0){  
  25.         NSString * callback = [[[url path] componentsSeparatedByString:@"/"] objectAtIndex:1];  
  26.         NSString * orderInfo =[[[url path] componentsSeparatedByString:@"/"] objectAtIndex:2];  
  27.         [self getWebPayOrder:callback andOrderInfo:orderInfo];  
  28.         return YES;  
  29.     }  
  30.     return YES;  
  31. }  

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. -(void)getNativeSessionID:(NSString *)callback{  
  2.       
  3.     NSString * sessionId = @"" ;  
  4.     if (USER_SESSODONID) {  
  5.         sessionId = USER_SESSODONID;  
  6.     }  
  7.     NSString * callbackFunction = [NSString stringWithFormat:@"%@('%@')",callback,sessionId];  
  8.       
  9.     [_web stringByEvaluatingJavaScriptFromString:callbackFunction];  
  10. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值