我必须在Native IOS应用程序中根据用户访问加载多个cordova应用程序。 我想在应用程序启动时动态加载zip文件并将它们存储在Documents或Libraries文件夹中,然后解压缩这些文件,然后我尝试使用我的视图控制器中的以下代码直接加载cordova视图
CDVViewController* viewController = [CDVViewController new];
viewController.wwwFolderName=@"www";
viewController.startPage=@"abc.html";
viewController.view.frame=CGRectMake(0, 0, 320, 480);
[self.view addSubview:viewController.view];
但问题是,如果我动态指向Documents或Library文件夹,它只接受随应用程序提供的根文件夹,wwwFolderName无法正常工作,所以我想知道如何实现这个用例。
答案 0 :(得分:0)
如果我理解你是对的,这里有一个例子,其中YOUR_APP_PATH是目录的字符串路径,你要存储应用程序源,YOUR_SEARCH_PATH是NSLibraryDirectory或NSDocumentsDirectory
- (void)openApp
NSString *filePath = [self directoryToApp:YOUR_APP_PATH forSearchPath:YOUR_SEARCH_PATH];
NSURL *url = [NSURL fileURLWithPath:filePath];
NSURLRequest *request = [NSURLRequest requestWithURL: url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval: 20.0];
[self.webView loadRequest:appReq request;
}
- (NSURL *)directoryToApp:(NSString *)appPath forSearchPath:(NSSearchPathDirectory)searchPath{
NSString *basePath = [self applicationDocumentsDirectory:searchPath].absoluteString;
return [NSURL fileURLWithPath:[basePath stringByAppendingString:appPath]];
}
- (NSURL *)applicationDocumentsDirectory:(NSSearchPathDirectory)searchPath
{
return [[[NSFileManager defaultManager] URLsForDirectory: searchPath
inDomains: NSUserDomainMask] lastObject];
}
答案 1 :(得分:0)
让你的wwwFolderName跟随:
viewController.wwwFolderName=[NSString stringWithFormat: @"file://%@/www", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
这会将开始目录指向文档目录中的www文件夹。