IOS和H5交互 捕获H5传来的信息

本文介绍了如何在iOS应用中通过UIWebView与H5页面进行交互,捕获并解析H5传递的数据。首先在`viewDidLoad`中设置webview,并在`loadView`方法中加载H5页面。当H5页面请求URL时,通过`webView:shouldStartLoadWithRequest:navigationType:`代理方法捕获特定前缀的URL,解码并解析JSON数据,将解析后的数据传递给新的视图控制器进行展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在控制器viewDidLoad中,建立webview控制器 加载h5页面

    

-(void)loadView

{

    UIWebView *webView = [[UIWebView alloc]init];

    self.view = webView;

    webView.delegate = self;

 

  self.view.backgroundColor = [UIColor whiteColor];

}

- (void)viewDidLoad {

    [super viewDidLoad];

    //字符串里有空格 转换成url为空  需要把字符串中的空格去掉 才能转换成正经的url 神坑 神坑 神坑  orzzzzzzz。。。。。

    self.nvgUrl = [self.nvgUrl stringByReplacingOccurrencesOfString:@" " withString:@""];

        NSURL *url = [NSURL URLWithString:self.nvgUrl];

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

       UIWebView *webView = (UIWebView *)self.view;

        [webView loadRequest:request];

        NSLog(@"%@",url);

}

//实现webview的代理方法

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

    NSURL * url = [request URL];

    NSString * string = url.absoluteString;


   //如果字符串中包含这个文字  就会走这个方法

      if ([string hasPrefix:@"lalahei"]){

      string = string.stringByRemovingPercentEncoding;

      NSRange range = [string rangeOfString:@"lalahei:"];

     //假设传来的字符串是这串“ lalahei:{"data":"http://192.168.1.000:2222/webapp/lalaDetails/107/0","title":"极速借"}”

      string = [string substringFromIndex:range.location + range.length];

      NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

      NSError *error = nil;

    //转换成人类能看懂的格式  不需要再截取字符串了

      NSDictionary *object = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

      //这时输出结果是这样婶er  !!!!!@@{

      data = "http://192.168.1.000:2222/webapp/lalaDetails/107/0";

      title = "\U6781\U901f\U501f";       }

      NSLog(@"!!!!!@@%@",object);

      CommonWebViewController *commonWebVc = [[CommonWebViewController alloc]init];

   //就可以直接从字典里取值了

      commonWebVc.nvgTitle = object[@"title"];

      commonWebVc.nvgUrl = object[@"data"];

      [self.navigationController pushViewController:commonWebVc animated:YES];

      return NO;

   }


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值