iOS开发UIWebView与原生网页的交互

原理

用UIWebView的代理方法截获原生网页的按钮点击链接,对链接判断做处理。

代码

1.遵循UIWebViewDelegate代理
2.设置代理self.webView.delegate = self;
3.使用代理方法截获链接

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    //在这里获取到点击某个控件传过来的URL,截取字符串,对比,做相应处理。
    NSString *url = [[request URL] absoluteString];
    //把接口转成UTF-8的形式
    NSString *urlString = [url stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    //判断接口是否以http://renrenpiao/开头
    BOOL flag = [urlString hasPrefix:@"http://renrenpiao/"];
    if (flag) {
        //判断接javascriptsceneryclick方法名
        if([urlString rangeOfString:@"javascriptsceneryclick"].location != NSNotFound){
            //通过?符号分割,把字符串存进数组,下面可以按元素位置取
            NSArray *urlArray = [urlString componentsSeparatedByString:@"?"];
            //通过&符号分割,把字符串存进数组,下面可以按元素位置取
            NSArray *sceneryArray = [urlArray[1] componentsSeparatedByString:@"&"];
            //通过=符号分割,把字符串存进数组,下面可以按元素位置取
            self.sceneryID = [sceneryArray[0] componentsSeparatedByString:@"="][1];
            self.sceneryName = [sceneryArray[1] componentsSeparatedByString:@"="][1];

            return NO;
        }
    }
    return YES;
}

参考的链接:

http://renrenpiao/javascriptsceneryclick?sceneryid=73&sceneryname=%E6%B8%8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值