【问题标题】:Load Multiple Cordova Micro Apps inside Native IOS apps在本机 IOS 应用程序中加载多个 Cordova 微应用程序
【发布时间】:2015-11-25 09:02:16
【问题描述】:

我必须根据 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 不起作用,它只接受应用程序附带的根文件夹,所以我想知道我应该如何实现这个用例。

【问题讨论】:

  • 可以从 Documents 或 Library 加载 html 内容,但 CDVViewController.wwwFolderName 不准备从那里加载文件。您可以搜索一些下载 html 并加载它的“内容同步”插件,然后检查它们是如何做到的。

标签: ios cordova cordova-plugins


【解决方案1】:

如果我的理解正确,这里是一个示例,其中 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];
}

【讨论】:

    【解决方案2】:

    让您的 wwwFolderName 如下:

    viewController.wwwFolderName=[NSString stringWithFormat: @"file://%@/www", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
    

    这会将起始目录指向文档目录中的 www 文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-02
      • 2018-12-20
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 2016-10-05
      相关资源
      最近更新 更多