123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- //
- // HWSetViewController.m
- // Private-X
- //
- // Created by 余衡武 on 2022/3/24.
- //
- #import "HWSetViewController.h"
- #import "HWAgreementViewController.h"
- #import "HWAboutViewController.h"
- #import <WebKit/WebKit.h>
- @interface HWSetViewController ()
- @property (weak, nonatomic) IBOutlet UIView *bgViewOne;
- @property (weak, nonatomic) IBOutlet UIView *bgViewTwo;
- @property (weak, nonatomic) IBOutlet UIView *bgViewThree;
- @property (weak, nonatomic) IBOutlet UILabel *storeLabel;
- @property (weak, nonatomic) IBOutlet UIView *header;
- @end
- @implementation HWSetViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
-
- [self.header mas_updateConstraints:^(MASConstraintMaker *make) {
- make.height.mas_equalTo(NAVIHEIGHT);
- }];
- [self.bgViewOne addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bgViewOneDidClick)]];
- [self.bgViewTwo addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bgViewTwoDidClick)]];
- [self.bgViewThree addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bgViewThreeDidClick)]];
-
- self.bgViewOne.layer.cornerRadius = 10;
- self.bgViewOne.layer.masksToBounds = YES;
- self.bgViewTwo.layer.cornerRadius = 10;
- self.bgViewTwo.layer.masksToBounds = YES;
- self.bgViewThree.layer.cornerRadius = 10;
- self.bgViewThree.layer.masksToBounds = YES;
- [self.bgViewThree setHidden:YES];
- self.storeLabel.text = [self getCacheSize];
- }
- - (IBAction)backBtnClick:(UIButton *)sender {
- [self.navigationController popViewControllerAnimated:YES];
- }
- - (void)bgViewOneDidClick {
- HLog(@"清除缓存");
- [self toShowTips];
- }
- - (void)bgViewTwoDidClick {
- HLog(@"关于我们");
- HWAboutViewController *vc = [[HWAboutViewController alloc] init];
- [self.navigationController pushViewController:vc animated:YES];
- }
- - (void)bgViewThreeDidClick {
- HLog(@"隐私政策");
- HWAgreementViewController *vc = [[HWAgreementViewController alloc] init];
- [self.navigationController pushViewController:vc animated:YES];
- }
- - (void)toShowTips {
- NSString *tipsStr = NSLocalizedString(@"app_set_clear_cache",nil);
- UIAlertAction *sureAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"other_confirm",nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [self clearWebViewCache];
- }];
- [sureAction setValue:[UIColor hwColor:@"#3B7FFF"] forKey:@"titleTextColor"];//iOS8.3
-
- UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"other_cancel",nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
- }];
- [cancelAction setValue:[UIColor colorWithHexString:@"#FFFFFF" alpha:0.5] forKey:@"titleTextColor"];//iOS8.3
-
- UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:tipsStr message:@"" preferredStyle:(UIAlertControllerStyleAlert)];
- alertVC.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
-
- [alertVC addAction:sureAction];
- [alertVC addAction:cancelAction];
- [self presentViewController:alertVC animated:YES completion:^{
-
- }];
- }
- - (NSString *)getCacheSize {
-
- /* 取得Library文件夹的位置*/
- NSString *libraryDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES)[0];
- /* 取得bundle id,用作文件拼接用*/
- NSString *bundleId = [[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleIdentifier"];
- /*
- * 拼接缓存地址,具体目录为App/Library/Caches/你的APPBundleID/fsCachedData
- */
- NSString *webKitFolderInCachesfs = [NSString stringWithFormat:@"%@/Caches/%@/fsCachedData",libraryDir,bundleId];
-
- NSError *error;
- /* 取得目录下所有的文件,取得文件数组*/
- NSFileManager *fileManager = [NSFileManager defaultManager];
- // NSArray *fileList = [[NSArray alloc] init];
- //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
- NSArray *fileList = [fileManager contentsOfDirectoryAtPath:webKitFolderInCachesfs error:&error];
- NSInteger fileSize = 0;
- /* 遍历文件组成的数组*/
- for(NSString *fileName in fileList){
- /* 定位每个文件的位置*/
- NSString * path = [[NSBundle bundleWithPath:webKitFolderInCachesfs] pathForResource:fileName ofType:@""];
- /* 将文件转换为NSData类型的数据*/
- NSData *fileData = [NSData dataWithContentsOfFile:path];
- /* 如果FileData的长度大于2,说明FileData不为空*/
- if(fileData.length >2){
- /* 创建两个用于显示文件类型的变量*/
- int char1 =0;
- int char2 =0;
- [fileData getBytes:&char1 range:NSMakeRange(0,1)];
- [fileData getBytes:&char2 range:NSMakeRange(1,1)];
- /* 拼接两个变量*/
- NSString *numStr = [NSString stringWithFormat:@"%i%i",char1,char2];
- /* 如果该文件前四个字符是6033,说明是Html文件,删除掉本地的缓存*/
- if([numStr isEqualToString:@"6033"]){
- // [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@",webKitFolderInCachesfs,fileName]error:&error];
- fileSize += fileData.length;
- continue;
- }
- }
- }
-
- return [iTools getFileSizeStringFormedValue:fileSize];
- }
- - (void)clearWebViewCache {
- NSArray * types = @[WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache]; // 9.0之后才有的
- NSSet *websiteDataTypes = [NSSet setWithArray:types];
- NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];
- [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{
- HLog(@"缓存清理完成");
- self.storeLabel.text = @"0MB";
- [[iToast makeText:@"缓存清理完成"] show];
- }];
-
- // /* 取得Library文件夹的位置*/
- // NSString *libraryDir = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES)[0];
- // /* 取得bundle id,用作文件拼接用*/
- // NSString *bundleId = [[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleIdentifier"];
- // /*
- // * 拼接缓存地址,具体目录为App/Library/Caches/你的APPBundleID/fsCachedData
- // */
- // NSString *webKitFolderInCachesfs = [NSString stringWithFormat:@"%@/Caches/%@/fsCachedData",libraryDir,bundleId];
- //
- // NSError *error;
- // /* 取得目录下所有的文件,取得文件数组*/
- // NSFileManager *fileManager = [NSFileManager defaultManager];
- //// NSArray *fileList = [[NSArray alloc] init];
- // //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
- // NSArray *fileList = [fileManager contentsOfDirectoryAtPath:webKitFolderInCachesfs error:&error];
- // /* 遍历文件组成的数组*/
- // for(NSString * fileName in fileList){
- // /* 定位每个文件的位置*/
- // NSString * path = [[NSBundle bundleWithPath:webKitFolderInCachesfs] pathForResource:fileName ofType:@""];
- // /* 将文件转换为NSData类型的数据*/
- // NSData * fileData = [NSData dataWithContentsOfFile:path];
- // /* 如果FileData的长度大于2,说明FileData不为空*/
- // if(fileData.length >2){
- // /* 创建两个用于显示文件类型的变量*/
- // int char1 =0;
- // int char2 =0;
- //
- // [fileData getBytes:&char1 range:NSMakeRange(0,1)];
- // [fileData getBytes:&char2 range:NSMakeRange(1,1)];
- // /* 拼接两个变量*/
- // NSString *numStr = [NSString stringWithFormat:@"%i%i",char1,char2];
- // /* 如果该文件前四个字符是6033,说明是Html文件,删除掉本地的缓存*/
- // if([numStr isEqualToString:@"6033"]){
- // [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@",webKitFolderInCachesfs,fileName]error:&error];
- // continue;
- // }
- // }
- // }
- //
- // self.storeLabel.text = [self getCacheSize];
- // [[iToast makeText:@"缓存清理完成"] show];
- }
- @end
|