您的位置:首页 > 移动开发

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

2017-01-06 17:26 555 查看

原理

用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息