本项目部分内容使用 cordova(PhoneGap)。相关可参考http://www.cnblogs.com/dyingbleed/archive/2013/02/01/2888747.html
1、对AppDelegate的认识。
从main.m入口进入后,根据delegateClass类名,初始化了Appdelegate类的实例。所以该类肯定有和其他类同样的init方法,可重写。
2、NSURLCache。
为URL请求提供了内存及磁盘上的综合缓存机制,是URL Loading System的一部分,任何痛感NSURLConnection加载的请求都被NSURLCache处理。
网络缓存减少了需要向服务器发送请求的次数,同时也提升了离线或在低速网络中使用应用的体验。
利用 NSURLCache,你需要初始化并设置一个共享的 URL缓存。在 iOS 中这项工作需要在 -application:didFinishLaunchingWithOptions:完成。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
diskCapacity:20 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
}
默认情况下,内存是4M,4* 1024 * 1024;Disk为20M,20 * 1024 * 1024;路径在(NSHomeDirectory)/Library/Caches/(current application name, [[NSProcessInfo processInfo] processName])
缓存策略:cachePolicy
UseProtocolCachePolicy-默认行为;ReloadIgnoringLocalCacheData-不使用缓存;
ReturnCacheDataElseLoad-使用缓存(不管它是否过期),如果缓存中没有,那从网络加载吧
ReturnCacheDataDontLoad-离线模式:使用缓存(不管它是否过期),但是不从网络加载
’3、复习NSHTTPCookie。
HTTP请求和回应用 headers来交换元数据,如字符编码、MIME类型和缓存指令等
当第一次进行(登录)请求时,Http头会带有Set-Cookie字段,包括value,expiretime,domain,path,secure(Https相关)。iOS的 NSHTTPCookieStorage 会自动保存。下次请求就会拿着上次保存的cookie去请求。
获取:
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStoragesharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieJar cookies]) {
NSLog(@"%@", cookie);
}
清除:
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *_tmpArray = [NSArray arrayWithArray:[cookieJar cookies]];
for (id obj in _tmpArray) {
[cookieJar deleteCookie:obj];
}
最后,必须阅读http://nshipster.cn/nsurlcache/
http://www.cnblogs.com/pengyingh/articles/2343222.html
4、百度统计。
在appDidLaunch中开启。
BaiduMobStat* statTracker = [BaiduMobStat defaultStat];
statTracker.enableExceptionLog = NO; //是否允许截获并发送崩溃信息,请设置YES或者NO
//statTracker.channelId = @"ReplaceMeWithYourChannel";//设置您的app的发布渠道
statTracker.logStrategy = BaiduMobStatLogStrategyAppLaunch;//根据开发者设定的发送策略,发送日志
//statTracker.logSendInterval = 1; //为1时表示发送日志的时间间隔为1小时,当logStrategy设置为BaiduMobStatLogStrategyCustom时生效
statTracker.logSendWifiOnly = NO; //是否仅在WIfi情况下发送日志数据
statTracker.sessionResumeInterval = 10;//设置应用进入后台再回到前台为同一次session的间隔时间[0~600s],超过600s则设为600s,默认为30s
//statTracker.shortAppVersion = IosAppVersion; //参数为NSString *类型,自定义app版本信息,如果不设置,默认从CFBundleVersion里取
statTracker.enableDebugOn = NO; //调试的时候打开,会有log打印,发布时候关闭
[statTracker startWithAppId:baiduMobStat_appKey];//设置您在mtj网站上添加的app的appkey,此处AppId即为应用的appKey
pageviewStartWithName、pageviewEndWithName页面访问开始及结束。
[statTracker logEvent:@"another" eventLabel:@"sss”];eventId请在网站上创建。未创建的evenId记录将无效。其他包括eventStart、end。。
可参照demo。