ios首次加载web |
您所在的位置:网站首页 › wkwebview加载本地资源 › ios首次加载web |
前言:由于我现在做的工作就是每天写游戏SDK,混淆代码,想各种办法将H5游戏上架到App Store上,由于苹果审核特别严,所以我们得想办法绕开苹果的审核。我们就使用WKWebView加载H5小游戏,通过将H5小游戏打包成资源放到本地进行加载的方式让苹果审核。废话不多说,接下来看代码实现: 首先我们要搭建一个第三方本地服务器,具体要使用到的第三方,在pod中如下引入: pod 'CocoaHTTPServer', '~> 2.3' pod 'SSZipArchive' 在导入 CocoaHTTPServer库后,编译会报错,具体解决方案请看这篇文章(https://www.jianshu.com/p/b693d660acc1) image.png 代码具体实现 在AppDelegate中didFinishLaunchingWithOptions 方法中调用 setupLocalHttpServer,我们首先要导入 #import , #import ,定义两个属性: @property (nonatomic, strong) HTTPServer *localHttpServer; @property (nonatomic, copy) NSString *port; - (void)setupLocalHttpServer{ _localHttpServer = [[HTTPServer alloc] init]; [_localHttpServer setType:@"_http.tcp"]; NSFileManager *fileManager = [[NSFileManager alloc] init]; // 获取zip文件的路径 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"tiaotiaoxiaoemo" ofType:@"zip"]; // zip解压缩后的路径 NSString *webPath = [self uSSZipArchiveWithFilePath:filePath]; if (![fileManager fileExistsAtPath:webPath]){ NSLog(@"File path error!"); }else{ NSString *webLocalPath = webPath; [_localHttpServer setDocumentRoot:webLocalPath]; [self hjss_startServer]; } } - (void)hjss_startServer { NSError *error; if([_localHttpServer start:&error]){ self.port = [NSString stringWithFormat:@"%d",[_localHttpServer listeningPort]]; NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults]; [accountDefaults setObject:self.port forKey:@"webPort"]; [accountDefaults synchronize]; } else{ } } -(NSString *)uSSZipArchiveWithFilePath:(NSString *)path { NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]; NSString *destinationPath =[cachesPath stringByAppendingPathComponent:@"SSZipArchive"]; BOOL isSuccess = [SSZipArchive unzipFileAtPath:path toDestination:destinationPath]; if (isSuccess) { NSString *path = [self obtainZipSubsetWithFilePath:destinationPath]; return path; } return @""; } - (NSString *)obtainZipSubsetWithFilePath:(NSString *)path { NSString *destinationPath = [path stringByAppendingPathComponent:@"tiaotiaoxiaoemo"]; return destinationPath; } 在你要加载H5游戏的控制器中,首先定义一个webView的属性:在viewDidLoad里面调用gotoStartGame - (void)gotoStartGame { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSURL *pathStr = [NSURL URLWithString:[NSString stringWithFormat:@"http://localhost:%@", [userDefaults objectForKey:@"webPort"]]]; NSURLRequest *request = [NSURLRequest requestWithURL:pathStr]; [self.webView loadRequest:request]; } 这样就可以通过webView将H5游戏的资源打包到本地进行加载了! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |