在Native IOS应用程序中加载多个Cordova Micro Apps

时间:2015-11-25 09:02:17

标签: ios cordova cordova-plugins

我必须在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无法正常工作,所以我想知道如何实现这个用例。

2 个答案:

答案 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文件夹。