在看了这位大神的分析之后(http://www.jianshu.com/p/6cbde1b8b922),我打算采用网易严选的方式来解决,
首先,本人项目中用的是WKWebView,所以在webview请求失败的代理方法里加入了以下代码:
效果大概是这样的:
既然看了那篇文章,就顺带记一下判断首次运行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;
}