iOS 获取UIWebView上面的按钮点击事件
2014-11-27 15:37
267 查看
在网上看到很多文章都说iOS的UIWebView比较耗内存,在我的项目中,最开始我也是用UIWebView来加载网页的。刚开始加载的是自己拼接成的Html,后来在Html中加入一个按钮,点击之后用当前的UIWebView去加载网络上的网页。程序跑起来发现非常耗内存,加载几个网上的网页之后就爆内存警告了,不处理的话很容易被评估拒掉app。后来就改成用系统的safari浏览器来打开网络上的网页,把着耗内存的工作交给苹果自己自带的浏览器来处理,就避免了我这个app crash。但是怎么获取网页上这个按钮点击的事件呢,这个按钮本身就绑定了一个url,怎么让它点击之后当前的UIWebView不去load这个url呢。 后来查了一下资料,发现UIWebView的协议里面有这么个方法,可以获取它加载的网页上面的事件,比如单击了图片,单击了按钮等等。- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{//判断是否是单击 if (navigationType == UIWebViewNavigationTypeLinkClicked) { NSURL *url = [request URL]; if([[UIApplication sharedApplication]canOpenURL:url]) { [[UIApplication sharedApplication]openURL:url]; } return NO; }
return YES;}
拼接的Html最后加的按钮的方法如下:NSURL * path = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"source_page_button" ofType:@"png"]];
[strReturn appendString:[NSString stringWithFormat:@"<div style='display:block;text-align:center;margin:0 auto;'><a href='%@'><img src='%@'></a></div>",_url,path]];
这样写了之后,点击按钮之后就不会用当前的UIWebView来加载网络上的网页,而是调用系统的Safari来打开。
注意:最后一点要返回YES,否则UIWebView刚开始将一片空白,这是因为第一次加载的时候也是UIWebView请求一个链接,如果返回NO,就不会去加载了。还可以对url的内容进行判断,看是什么请求。
return YES;}
拼接的Html最后加的按钮的方法如下:NSURL * path = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"source_page_button" ofType:@"png"]];
[strReturn appendString:[NSString stringWithFormat:@"<div style='display:block;text-align:center;margin:0 auto;'><a href='%@'><img src='%@'></a></div>",_url,path]];
这样写了之后,点击按钮之后就不会用当前的UIWebView来加载网络上的网页,而是调用系统的Safari来打开。
注意:最后一点要返回YES,否则UIWebView刚开始将一片空白,这是因为第一次加载的时候也是UIWebView请求一个链接,如果返回NO,就不会去加载了。还可以对url的内容进行判断,看是什么请求。
相关文章推荐
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS 获取UIWebView上面的按钮点击事件
- iOS获取UIwebView上面的点击事件
- iOS 与HTML5交互之捕捉HTML5按钮点击事件,获取webview上按钮的点击事件
- iOS 与HTML5交互之捕捉HTML5按钮点击事件,获取webview上按钮的点击事件
- iOS照相机里面那个按钮的点击事件的获取
- iOS 每日一记之 -----点击验证码按钮 获取验证码
- IOS之UI--自定义按钮实现代理监听点击事件
- 关于listview getview()中 每个item中的按钮的 点击事件,获取当前item
- iOS 为自定义tableView添加button点击事件后获取其序号
- 【Cocos2dx】使用CCControlButton创建按钮、按钮点击事件,点击事件中的组件获取,setPosition的坐标问题
- ios学习之苹果官方文档的学习(按钮点击事件方面)
- iOS项目开发实战——监听对话框的按钮点击事件
- iOS笔记--多点触碰的时候如何获取其中的某一次点击事件