使用webview如何做超时判断
在加载网页时给一个timer定时器,规定超时时间,然后再超时时间的方法中提示超时
如果没有超时,则在webview协议中的“加载完成”方法中 取消timer定时器
- (void)openWebView
{
if (timer) {
[timer invalidate];
}
timer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(timerFunction) userInfo:nil repeats:NO]; if (!webViewFirst) {
webViewFirst = [[UIWebView alloc] init];
webViewFirst.frame = CGRectMake(, , ivWelcome.frame.size.width, ivWelcome.frame.size.height);
webViewFirst.backgroundColor = [UIColor whiteColor];
webViewFirst.delegate = self;
webViewFirst.hidden = YES;
[webViewFirst loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[kGlobal getLoadingUrl]]]];
[ivWelcome addSubview:webViewFirst];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(, , ivWelcome.frame.size.width, ivWelcome.frame.size.height);
btn.backgroundColor = [UIColor clearColor];
btn.enabled = NO;
[btn addTarget:self action:@selector(initLoginView) forControlEvents:UIControlEventTouchUpInside];
[ivWelcome addSubview:btn];
btnSkip = btn;
}
else {
webViewFirst.hidden = YES;
[webViewFirst reload];
}
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
if (timer) {
[timer invalidate];
}
btnSkip.enabled = YES;
webViewFirst.hidden = NO;
{//添加淡入淡出动画
CATransition *animation = [CATransition animation];
//animation.delegate = self;
// 设定动画时间
animation.duration = 0.7;
// 设定动画快慢(开始与结束时较慢)
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.type = kCATransitionFade;
[webViewFirst.layer addAnimation:animation forKey:@"animation"];
}
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[self timerFunction];
}
- (void)timerFunction
{
if (timer) {
[timer invalidate];
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"网络不给力,请重试" delegate:kAPPDELEGATE cancelButtonTitle:@"重试" otherButtonTitles:nil];
[alert show];
}
使用webview如何做超时判断的更多相关文章
- webview内部跳转判断
重写webview内的方法 webView.setWebViewClient(new WebViewClient() { @Override // 在点击请求的是链接是才会调用,重写此方法返回true ...
- asp.net 的page 基类页面 做一些判断 可以定义一个基类页面 继承Page类 然后重写OnPreLoad事件
public class BasePage:Page protected override void OnPreLoad(EventArgs e){ base.OnPreLoad(e); ...
- mybatis做if 判断 传入值0 建议最好不要使用值0
mybatis做if 判断 注意:下面这种写法只适用于 id 类型为字符串. <if test="id != null and id != '' "> id = ...
- 使用JSTL的taglib做if判断
背景:使用springmvc做RESTful风格的CRUD时 问题:使用JSTL的taglib做if判断,未能呈现判断后想要的内容 排查过程: 1.先确定了转发到了正确的jsp文件(在jsp页面中增加 ...
- Android WebView播放视频flash(判断是否安装flash插件)
Android WebView播放flash(判断是否安装flash插件) 最近帮一个同学做一个项目,断断续续的一些知识点记录一下.一个页面中有一个WebView,用来播放swf,如果系统中未安装f ...
- 黄聪:C#中WebClient自动判断编码是UTF-8还是GBK,并且有超时判断功能
public class WebDownload : WebClient { private int _timeout; /// <summary> /// 超时时间(毫秒) /// &l ...
- typeof做类型判断时容易犯下的错
学过js同学都知道js的数据类型有 字符串.数字.布尔.Null.Undefined和object(数组.function......) 作为一个初学者我一直认为每个数据类型返回的结果是这样的 typ ...
- 新增 修改,对xx名字或者其他属性做校验判断是否存在
需求描述:页面输入完xxName和xx编码,点击提交,根据两项内容做重复校验(就是看看数据库里有木有相同的) 解决思路:把这两个东西作为查询条件去查,查到有记录,提示已存在,就不执行新增或者修改操作. ...
- [Xamarin] 使用Webview 來做APP (转帖)
有時候,企業要求的沒有這麼多,他原本可能官方網站就已經有支援Mobile Web Design 他只需要原封不動的開發一個APP 也或是,他只是要型錄型,或是問卷調查的型的APP,這時候透過類似像if ...
随机推荐
- POJ 3007 Organize Your Train part II(哈希链地址法)
http://poj.org/problem?id=3007 题意 :给你一个字符串,让你无论从什么地方分割,把这个字符串分成两部分s1和s2,然后再求出s3和s4,让你进行组合,看能出来多少种不同的 ...
- 体验Openstack--感觉这个比HADOOP还要基础啊
当然,这两者应该是可以整到一起的..这个和ESX是什么关系叫?? 今天闲时慢慢按文档整了一个大概出来.. http://www.linuxidc.com/Linux/2013-01/78253p3.h ...
- IDEA 整合Junit实现自动生成测试代码
1.安装插件 junit generator 重启IDEA,完成安装. 2. 选中需要测试的方法,按alt + insert 即可自动生成测试类\方法 3. 设置
- 如何登录mysql? cmd怎么连接mysql数据库
Mysql开源数据库,任何人都可以下载安装使用.那么安装好的mysql如何登陆连接mysql数据库呢? 连接mysql数据库的几种方法 一 Mysql命令行连接 一般对于刚刚安装好的mysql,如果勾 ...
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-004-使用AspectJ’s pointcut expression language定义Pointcut
一. 1.在Spring中,pointcut是通过AspectJ’s pointcut expression language来定义的,但spring只支持它的一部分,如果超出范围就会报Illegal ...
- 如何忽略usb host 模式设备连接确认对话框
<li class="alt"><span><span>package android.hardware.usb; </span> ...
- C++中为什么要用虚函数、指针或引用才能实现多态?
原文链接:http://blog.csdn.net/zoopang/article/details/14071779 学过C++的都知道,要实现C++的多态性必须要用到虚函数,并且还要使用引用或者指针 ...
- RHEL双网卡绑定
新增绑定网卡文件: vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes TYPE=Ethernet BOOTPR ...
- Hadoop中两表JOIN的处理方法
Dong的这篇博客我觉得把原理写的很详细,同时介绍了一些优化办法,利用二次排序或者布隆过滤器,但在之前实践中我并没有在join中用二者来优化,因为我不是作join优化的,而是做单纯的倾斜处理,做joi ...
- php include include_once require require_once 的区别与联系
一.require 与 include 的区别: The require() function is identical to include(), except that it handles er ...