zoukankan      html  css  js  c++  java
  • 使用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];
    }
  • 相关阅读:
    SQL补充
    SQL练习题
    HDU 2907
    Codeforces 814D
    Codeforces 814C
    Codeforces 1004D
    Codeforces 1004E
    CodeForces 909F
    CodeForces 909E
    CodeForces 909D
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/4225564.html
Copyright © 2011-2022 走看看