使用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(0, 0, 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(0, 0, 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];
}
时间: 2024-10-27 07:44:57

使用webview如何做超时判断的相关文章

用redis做超时判断 感觉写的很有意思

public Long getSessionIdByUserId(Long systemId, Long customerUserId) { if (customerUserId == null) { LoggerHelper.info(this.getClass(), "custom user id is null."); return DEFAULT_SESSION_ID; } Long sessionId = getSessionId(String.valueOf(custome

CASE函数用法:相当于switch..case:,能够实现等值判断,也可以做范围判断 相当于if...else

--CASE函数用法:--1.相当于switch..case:,能够实现等值判断--语法:--case 字段/表达式 --判断指定折字段或者表达式的值,它不能判断null值,因为null不是一个具体的值-- when 值 then '自定义值'-- when 值 then '自定义值'-- else '前面都不满足的情况'--end--特点:-- 1.会生成一个新列-- 2.then后面的值的类型需要一致select StudentNo,StudentName,case ClassId when

asp.net 的page 基类页面 做一些判断 可以定义一个基类页面 继承Page类 然后重写OnPreLoad事件

public class BasePage:Page protected override void OnPreLoad(EventArgs e){     base.OnPreLoad(e);     .................. } 这样 就可以在基类页面 统一做一些判断了

typeof做类型判断时容易犯下的错

学过js同学都知道js的数据类型有 字符串.数字.布尔.数组.对象.Null.Undefined 作为一个初学者我一直认为每个数据类型返回的结果是这样的 typeof("string") string typeof(111) number typeof(true) boolean typeof(arr[]) Array typeof(fn()) function typeof(null) null typeof(undefind) undefind 当我在判断null和arr[]时结果

黄聪:C#中WebClient自动判断编码是UTF-8还是GBK,并且有超时判断功能

public class WebDownload : WebClient { private int _timeout; /// <summary> /// 超时时间(毫秒) /// </summary> public int Timeout { get { return _timeout; } set { _timeout = value; } } public WebDownload() { this._timeout = 60000; } public WebDownload

原声js做动画判断是否到达目标值导致的突兀问题

如题,什么意思呢? $('#box').animate({ start:200, attr:'left', step:13, alter:400 //增量 }) 这时写好的动画函数animate用法 上面起始值是200,步长13,目标值是200+400=600,那么每次我都运动13,那么他只运动到590然后再运动到603然后判断并重新赋值到600,突兀吧?先看看我是怎么判断到达终点的 if((step>0&&target<=parseInt(getStyle(element,a

python 连接超时判断subprocess

def execsshVerify(hostname ,host): start = datetime.datetime.now(); t = 0; process = subprocess.Popen('ssh '+hostname+'@'+host +' -C echo ok', shell=True,stdout=subprocess.PIPE); while (t<4) and (process.poll() is None): t +=1; time.sleep(1); if t==3

做数字判断显示相应的图标d艾玛

效果为:当input值为0时,右侧图片字体均为为暗色,当input值>0时,右侧图片及文字均变色: 当值为1-5/6-10/11-15时,小图标显示的数量为相应的数字和相应的星星/砖石/皇冠.小图标数量最多为5个. 如图所示: html代码为: <div class="caution-con bgf"> <a class="href" href="javascript:;"></a> <span c

32.C#--方法中使用out参数做登录判断

static void Main(string[] args){//分别提示用户输入用户名和密码//写一个方法来判断用户输入的是否正确//返回给用户一个登陆结果,并且还要单独的返回给用户一个登陆信息//如果用户密或码错误,除了返回登陆结果之外,还要返回一个 "用户名错误"或"密码错误"//如果用户密码都错误则返回"未知错误"Console.WriteLine("请输入用户名"); string name = Console.R