webView 点击方法与返回方法
来源:互联网 发布:ubuntu启动引导器设置 编辑:程序博客网 时间:2024/06/11 06:57
UIWebView的一些用法总结的网址 http://blog.csdn.net/zhaoweixing1989/article/details/13021513
在网上看到很多文章都说iOS的UIWebView比较耗内存,在我的项目中,最开始我也是用UIWebView来加载网页的。刚开始加载的是自己拼接成的Html,后来在Html中加入一个按钮,点击之后用当前的UIWebView去加载网络上的网页。程序跑起来发现非常耗内存,加载几个网上的网页之后就爆内存警告了,不处理的话很容易被评估拒掉app。后来就改成用系统的safari浏览器来打开网络上的网页,把着耗内存的工作交给苹果自己自带的浏览器来处理,就避免了我这个app crash。但是怎么获取网页上这个按钮点击的事件呢,这个按钮本身就绑定了一个url,怎么让它点击之后当前的UIWebView不去load这个url呢。
- (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的内容进行判断,看是什么请求。
接口,如果为webView添加了delegate对象并实现该接口,那么在webView加载任何一个frame之前都会delegate对象的该方法,该方法的返回值用以控制是否允许加载目标链接页面的内容,返回YES将直接加载内容,NO则反之。并且UIWebViewNavigationType枚举,定义了页面中用户行为的分类,包括
- UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。
- UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。
- UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。
- UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
- UIWebViewNavigationTypeFormResubmitted,用户重复提交表单
- UIWebViewNavigationTypeOther,发生其它行为。
//判断web是否能够返回, 能返回就goBack, 不能就直接跳到上一级
if ([web canGoBack]) {
[web goBack];//原生
bgViewF.hidden = NO;
} else {
[self.navigationController popViewControllerAnimated:YES];
}
- webView 点击方法与返回方法
- android里面嵌套WebView,解决 WebView点击无效的方法
- 点击返回键退出popupwindow的方法
- 点击两次手机的返回键应用退出的思路与方法---android开发
- Android中的WebView禁止响应点击事件的方法
- 云飞的获取webview视频点击事件方法
- Android中的WebView布局点击事件的方法
- Android中的WebView禁止响应点击事件的方法
- Webview点击二次界面js方法不能响应
- android webview中shouldOverrideUrlLoading方法的返回值问题
- webView 与js交互方法(参考文献)
- 有关webview与javascript交互的方法
- WebView 与 JavaScript 交互常用方法
- ios点击返回按钮的回调方法
- android 点击返回键退出程序的方法
- tabBar点击事件以及返回跟vc的监控方法
- android webview点击返回键返回上一个html
- android webview点击返回键返回上一个html
- 你真的会用UITableView嘛
- HI3531 rtc
- 传感器,加速计,蓝牙以及UIDevice方法的详细说明
- Android M 新的运行时权限开发者需要知道的一切
- Java学习·设计模式
- webView 点击方法与返回方法
- Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。
- WinRAR 5.1-5.3 64位注册方法,rarreg.key
- Kendo UI常用示例汇总(四)
- LUCKY STRING
- App版本更新时对SQLite数据库升级或者降级遇到的问题
- 四、设置信任
- 【poj 3368】Frequent values 题意&题解&代码(C++)
- setContentView() 报 OutOfMemoryError的错误