美文网首页程序员IOS
iOS-解决首次安装APP,“允许使用Wifi或移动数据”后白屏

iOS-解决首次安装APP,“允许使用Wifi或移动数据”后白屏

作者: Cy_Star | 来源:发表于2017-11-22 12:45 被阅读164次

app第一次真机🐔运行的时候,都会弹出允许使用网络请求方式(图1),而然开中会发现,即使是选择网络后app依然出现白屏的现在;那是因为用户点击“允许”之前,所有网络请求都是被禁止的,而且在点击“允许”之前,程序已经运行了网络请求,这个时候请求失败的,所以即使允许依然是处于白屏的现象。


图1.png

那么解决这种现象的方式之一:实时监控网络状态,在网络正常的状态下在执行网络数据的请求访问,在这里个人使用AFNetworking去做这个操作,下面写demo来演示一下。

#import "ViewController.h"
#import <WebKit/WebKit.h>
#import "AFNetworking.h"
@interface ViewController ()<WKNavigationDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    WKWebView * web = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height-0)];

    web.backgroundColor = [UIColor colorWithRed:254/255.0 green:220/255.0 blue:60/255.0 alpha:1];
    web.scrollView.showsHorizontalScrollIndicator = NO;
    web.scrollView.showsVerticalScrollIndicator = NO;

    web.navigationDelegate = self;
    [self.view addSubview:web];

    NSURL * url = [NSURL URLWithString:@"http://baidu.com"];
    NSURLRequest * urlReq = [NSURLRequest requestWithURL:url];


    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
         
    // 在每次网络状态发生改变的时候会执行一次
    // 这里可以重复一两次进行关闭和打开移动、Wi-Fi就知道了

        if (status == AFNetworkReachabilityStatusReachableViaWWAN || status == AFNetworkReachabilityStatusReachableViaWiFi) {
            // 也就是每次恢复有网络的状态下都会执行一遍
            // 当然如果觉得这样不太好也可以自己做一些条件限制
            NSLog(@"有网路,开始请求数据");
            [web loadRequest:urlReq];
          }
        else
           {
            //在无网络状态下会自动弹出窗口进行提示
            NSLog(@"网络状态不佳");
            UIAlertController * alert = [UIAlertController alertControllerWithTitle:@"网络状态不佳" message:nil preferredStyle:UIAlertControllerStyleAlert];
            [alert addAction:[UIAlertAction actionWithTitle:@"返回" style:UIAlertActionStyleCancel handler:nil]];
            [self presentViewController:alert animated:YES completion:nil];
           }
    }];

}

相关文章

网友评论

    本文标题:iOS-解决首次安装APP,“允许使用Wifi或移动数据”后白屏

    本文链接:https://www.haomeiwen.com/subject/lfpnvxtx.html