关于APP首次运行时,在请求数据权限之前webView请求不成功的解决办法

在看了这位大神的分析之后(http://www.jianshu.com/p/6cbde1b8b922),我打算采用网易严选的方式来解决,

首先,本人项目中用的是WKWebView,所以在webview请求失败的代理方法里加入了以下代码:


关于APP首次运行时,在请求数据权限之前webView请求不成功的解决办法_第1张图片
在隐藏webview之后,显示一个按钮,给按钮添加action来reload


关于APP首次运行时,在请求数据权限之前webView请求不成功的解决办法_第2张图片
reload

效果大概是这样的:


QQ20170927-162142-HD


既然看了那篇文章,就顺带记一下判断首次运行APP和APP更新后首次运行的代码吧:

转载请标明出处:http://blog.csdn.net/loving_ios/article/details/50435840

方法一、在didFinishLaunchingWithOptions方法中加入如下代码:

if(![[NSUserDefaultsstandardUserDefaults]boolForKey:@"firstLaunch"]){

[[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"firstLaunch"];

//第一次启动

}else{

}

方法二、判断app是否第一次启动或者更新后第一次启动

#define LAST_RUN_VERSION_KEY @"last_run_version_of_application"

- (BOOL) isFirstLoad{

NSString*currentVersion = [[[NSBundlemainBundle]infoDictionary]

objectForKey:@"CFBundleShortVersionString"];

NSUserDefaults*defaults = [NSUserDefaultsstandardUserDefaults];

NSString*lastRunVersion = [defaultsobjectForKey:LAST_RUN_VERSION_KEY];

if(!lastRunVersion) {

[defaultssetObject:currentVersionforKey:LAST_RUN_VERSION_KEY];

returnYES;

}

elseif(![lastRunVersionisEqualToString:currentVersion]) {

[defaultssetObject:currentVersionforKey:LAST_RUN_VERSION_KEY];

returnYES;

}

returnNO;

}

你可能感兴趣的:(关于APP首次运行时,在请求数据权限之前webView请求不成功的解决办法)