123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383 |
- //
- // RQCommonManager.m
- // SDJK
- //
- // Created by 张嵘 on 2021/8/19.
- //
- #import "RQCommonManager.h"
- static NSString * const RQQuestionCarTypeKey = @"RQQuestionCarTypeKey";
- @interface RQCommonManager () <UIDocumentPickerDelegate>
- @end
- @implementation RQCommonManager
- @def_singleton(RQCommonManager);
- - (void)saveObjectWithObject:(id)object ForKey:(NSString* )key {
- NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
- if (!object) {
- [ud removeObjectForKey:key];
- }else{
- [ud setObject:object forKey:key];
- }
- [ud synchronize];
- }
- - (id)getObjectWithKey:(NSString *)key {
- NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
- return [ud objectForKey:key];
- }
- - (void)setCarType:(RQHomePageCarType)carType {
- NSString *carTypeStr = [NSString stringWithFormat:@"%@",[NSNumber numberWithInteger:carType]];
- [[NSUserDefaults standardUserDefaults] setObject:carTypeStr forKey:RQQuestionCarTypeKey];
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- - (RQHomePageCarType)carType {
- NSString *carTypeStr = [[NSUserDefaults standardUserDefaults] objectForKey:RQQuestionCarTypeKey];
- carTypeStr = [carTypeStr rq_stringValueExtension];
- return carTypeStr.integerValue;
- }
- - (void)setHistoryEmailStr:(NSString *)historyEmailStr {
- NSString *key = [NSString stringWithFormat:@"RQHistoryEmailStrKey-%@",RQ_USER_MANAGER.currentUserId];
- [[NSUserDefaults standardUserDefaults] setObject:historyEmailStr forKey:key];
- [[NSUserDefaults standardUserDefaults] synchronize];
- }
- - (NSString *)historyEmailStr {
- NSString *key = [NSString stringWithFormat:@"RQHistoryEmailStrKey-%@",RQ_USER_MANAGER.currentUserId];
- NSString *historyEmailStr = [[NSUserDefaults standardUserDefaults] objectForKey:key];
- historyEmailStr = [historyEmailStr rq_stringValueExtension];
- return historyEmailStr;
- }
- - (NSString *)carTypeStr {
- return [self getCarTypeStrWithCarType:self.carType];
- }
- - (NSString *)subjectStr {
- return [self getSubjectTypeStrWithSubjectType:self.subject];
- }
- - (NSString *)getCarTypeStrWithCarType:(RQHomePageCarType)carType {
- switch (carType) {
- case RQHomePageCarType_Car:
- return @"小车";
- case RQHomePageCarType_Bus:
- return @"客车";
- case RQHomePageCarType_Truck:
- return @"货车";
- case RQHomePageCarType_Motorcycle:
- return @"摩托车";
-
- default:
- return @"";
- }
- }
- - (NSString *)getCarTypeEnStrWithCarType:(RQHomePageCarType)carType {
- switch (carType) {
- case RQHomePageCarType_Car:
- return @"liceCar";
- case RQHomePageCarType_Bus:
- return @"liceBus";
- case RQHomePageCarType_Truck:
- return @"liceTruck";
- case RQHomePageCarType_Motorcycle:
- return @"liceMoto";
-
- default:
- return @"liceCar";
- }
- }
- - (NSString *)getCarTypeSimpleCNStrWithCarType:(RQHomePageCarType)carType {
- switch (carType) {
- case RQHomePageCarType_Car:
- return @"xc";
- case RQHomePageCarType_Bus:
- return @"kc";
- case RQHomePageCarType_Truck:
- return @"hc";
- case RQHomePageCarType_Motorcycle:
- return @"mtc";
-
- default:
- return @"xc";
- }
- }
- - (NSString *)getCarTypeSimpleCNStrWithCarTypeNew:(RQHomePageCarType)carType {
- switch (carType) {
- case RQHomePageCarType_Car:
- return @"cart";
- case RQHomePageCarType_Bus:
- return @"bus";
- case RQHomePageCarType_Truck:
- return @"truck";
- case RQHomePageCarType_Motorcycle:
- return @"mtc";
-
- default:
- return @"xc";
- }
- }
- - (NSString *)getSubjectTypeStrWithSubjectType:(RQHomePageSubjectType)subjecType {
- if (subjecType == RQHomePageSubjectType_SubjectOne) {
- return @"科目一";
- } else if (subjecType == RQHomePageSubjectType_SubjectFour) {
- return @"科目四";
- } else {
- return @"科目一";
- }
- }
- - (NSString *)getSubjectTypeNumStrWithSubjectType:(RQHomePageSubjectType)subjecType {
- if (subjecType == RQHomePageSubjectType_SubjectOne) {
- return @"1";
- } else if (subjecType == RQHomePageSubjectType_SubjectFour) {
- return @"4";
- } else {
- return @"1";
- }
- }
- - (NSString *)getMiExamTypeNumStrWithMiExamType:(RQMiExamType)miExamType {
- if (miExamType == RQMiExamType_One) {
- return @"3";
- } else if (miExamType == RQMiExamType_Two) {
- return @"4";
- } else {
- return @"3";
- }
- }
- //- (void)checkVersionWithComplete:(VoidBlock_Bool)complete {
- // /// 1: open 2: close
- // [[RQ_HTTP_Service getConfigKeyWithPath:RQButtonSwitchOriginalPath] subscribeNext:^(NSString *isOpenStr) {
- // if ([isOpenStr isEqualToString:@"1"]) {
- // if (RQ_USER_MANAGER.isLogin) {
- // complete(RQ_USER_MANAGER.currentUser.appleUserInfo);
- // } else {
- // complete(YES);
- // }
- // } else {
- // complete(NO);
- // }
- // } error:^(NSError * _Nullable error) {
- // complete(NO);
- // }];
- //}
- - (void)checkVersionWithComplete:(VoidBlock_Bool)complete {
- NSInteger localVersion = [[RQ_APP_VERSION stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
- [[RQ_HTTP_Service getConfigKeyWithPath:RQOnlineVersionPath] subscribeNext:^(NSString *customOnlineVersionStr) {
- NSInteger customOnlineVersion = [[customOnlineVersionStr stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
- /// 本地版本大于等于内部版本(审核的时候内部版本一定大于等于本地版本)
- if (localVersion >= customOnlineVersion) {
- complete(YES);
- } else {
- complete(NO);
- }
- } error:^(NSError * _Nullable error) {
- [self getAppStoreVersionWithComplete:^(NSInteger onlineVersion) {
- if (onlineVersion != 0) {
- /// 本地版本大于线上版本(审核的时候本地版本一定大于线上版本)
- if (localVersion > onlineVersion) {
- complete(YES);
- } else {
- complete(NO);
- }
- } else {
- complete(NO);
- }
- }];
- }];
- }
- - (void)getAppStoreVersionWithComplete:(VoidBlock_integer)complete {
- NSString *URL = @"http://itunes.apple.com/cn/lookup?id=1586064774";
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
- [request setHTTPMethod:@"POST"];
- NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
- dispatch_async_on_main_queue(^{
- //这个导致部分手机网络不好时候出现闪退情况
- if (!data) {
- complete(0);
- return;
- }
- //如果data等于nil的时候 再去解析 会发生崩溃
- NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
-
- if (!dic) {
- complete(0);
- return;
- }
- NSArray *infoArray = [dic objectForKey:@"results"];
- if ([infoArray count]) {
- NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
- NSString *netVersion = [releaseInfo objectForKey:@"version"];
- // 线上版本号
- NSInteger netInt = [[netVersion stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
- complete(netInt);
- } else {
- complete(0);
- }
- });
- }];
-
- [task resume];
- }
- - (void)checkAppStoreVersionWithComplete:(VoidBlock_Bool)complete {
- NSString *URL = @"http://itunes.apple.com/cn/lookup?id=1586064774";
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
- [request setHTTPMethod:@"POST"];
- NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
- dispatch_async_on_main_queue(^{
- //这个导致部分手机网络不好时候出现闪退情况
- if (!data) {
- complete(NO);
- return;
- }
- //如果data等于nil的时候 再去解析 会发生崩溃
- NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
-
- if (!dic) {
- complete(NO);
- return;
- }
- NSArray *infoArray = [dic objectForKey:@"results"];
-
- if ([infoArray count]) {
- NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
- NSString *netVersion = [releaseInfo objectForKey:@"version"];
-
- //NSLog(@"AppStore-->%@,手机上-->%@",lastVersion,currentVersion);
-
- // 线上版本号
- NSInteger netInt = [[netVersion stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
- // 本地版本号
- NSInteger localInt = [[RQ_APP_VERSION stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
-
- if (netInt > localInt) {
- NSLog(@"更新");
- complete(YES);
- }else{
- //已是最新版
- NSLog(@"不更");
- complete(NO);
- }
- } else {
- [MBProgressHUD rq_showTips:@"暂无新版本信息"];
- complete(NO);
- }
- });
- }];
-
- [task resume];
- }
- #pragma mark - 下载文件
- /// http://jadinec-test.oss-accelerate.aliyuncs.com/excelFile/a5f23e130d5e4dd7adda942c45207927.pdf
- - (void)downLoadWithFilePath:(NSString *)filePath {
- float version = [[[UIDevice currentDevice] systemVersion] floatValue];
- if (version >= 11) {
-
- } else {
- [MBProgressHUD rq_showTips:@"下载文件要求手机系统版本在11.0以上"];
- return;
- }
- /**
- /// 保存网络文件到沙盒一
- NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:filePath]];
- NSData *fileData = [NSURLConnection sendSynchronousRequest:req returningResponse:nil error:nil];
- NSString *temp = NSTemporaryDirectory();
- NSFileManager *fm = [NSFileManager defaultManager];
- NSString *fullPath = [self getNativeFilePath:[filePath componentsSeparatedByString:@"/"].lastObject];
- BOOL downResult = [fm createFileAtPath:fullPath contents:fileData attributes:nil];
- */
- /// 保存网络文件到沙盒二
- NSData *fileData = [NSData dataWithContentsOfURL:[NSURL URLWithString:filePath]];
- // NSString *fullPath = [self getNativeFilePath:[filePath componentsSeparatedByString:@"/"].lastObject];
- NSString *fullPath = [self getNativeFilePath:[[filePath componentsSeparatedByString:@"/"].lastObject rq_URLDecoding]];
- BOOL downResult = [fileData writeToFile:fullPath atomically:YES];
-
- if (downResult) {
- UIDocumentPickerViewController *documentPickerVC = [[UIDocumentPickerViewController alloc] initWithURL:[NSURL fileURLWithPath:fullPath] inMode:UIDocumentPickerModeExportToService];
- // 设置代理
- documentPickerVC.delegate = self;
- // 设置模态弹出方式
- documentPickerVC.modalPresentationStyle = UIModalPresentationFormSheet;
- [RQ_APPDELEGATE.navigationControllerStack.topNavigationController presentViewController:documentPickerVC animated:YES completion:nil];
- }
- }
-
- // 获得文件沙盒地址
- - (NSString *)getNativeFilePath:(NSString *)fileName {
- NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
- NSString *munu = [NSString stringWithFormat:@"%@/%@",@"downLoad",fileName];
- NSString *filePath = [path stringByAppendingPathComponent:munu];
- // 判断是否存在,不存在则创建
- NSFileManager *fileManager = [NSFileManager defaultManager];
- // fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
- BOOL isDir = NO;
- NSMutableArray *theArr = [[filePath componentsSeparatedByString:@"/"] mutableCopy];
- [theArr removeLastObject];
- NSString *thePath = [theArr componentsJoinedByString:@"/"];
- BOOL existed = [fileManager fileExistsAtPath:thePath isDirectory:&isDir];
- if ( !(isDir == YES && existed == YES) ) { // 如果文件夹不存在
- [fileManager createDirectoryAtPath:thePath withIntermediateDirectories:YES attributes:nil error:nil];
- }
- return filePath;
- }
-
- #pragma mark - UIDocumentPickerDelegate
-
- - (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
- // 获取授权
- BOOL fileUrlAuthozied = [urls.firstObject startAccessingSecurityScopedResource];
- if (fileUrlAuthozied) {
- // 通过文件协调工具来得到新的文件地址,以此得到文件保护功能
- NSFileCoordinator *fileCoordinator = [[NSFileCoordinator alloc] init];
- NSError *error;
-
- [fileCoordinator coordinateReadingItemAtURL:urls.firstObject options:0 error:&error byAccessor:^(NSURL *newURL) {
- // 读取文件
- NSString *fileName = [newURL lastPathComponent];
- NSError *error = nil;
- //NSData *fileData = [NSData dataWithContentsOfURL:newURL options:NSDataReadingMappedIfSafe error:&error];
- if (error) {
- // 读取出错
- } else {
- // 上传
- NSLog(@"fileName : %@", fileName);
- }
- }];
- [urls.firstObject stopAccessingSecurityScopedResource];
- } else {
- // 授权失败
- }
- }
- - (BOOL)SDJK_APP_ICON_NEED_CHANGE {
- id object = [self getObjectWithKey:@"SDJK_APP_ICON_NEED_CHANGE"];
- if (RQObjectIsNil(object)) {
- return NO;
- } else {
- BOOL SDJK_APP_ICON_NEED_CHANGE = [object boolValue];
- return SDJK_APP_ICON_NEED_CHANGE;
- }
- }
- - (void)setSDJK_APP_ICON_NEED_CHANGE:(BOOL)SDJK_APP_ICON_NEED_CHANGE {
- [self saveObjectWithObject:[NSNumber numberWithInteger:SDJK_APP_ICON_NEED_CHANGE] ForKey:@"SDJK_APP_ICON_NEED_CHANGE"];
- }
- @end
|