将下载文件的URL传递给Phonegap插件

时间:2012-12-19 12:42:15

标签: ios xcode cordova

我正在使用这个精彩的tutorial为IOS创建一个类似Instagram的应用程序带有phonegap

效果很好但是当我尝试下载,存储并将照片传递给插件时出现错误

我的错误是:

Dec 19 14:36:58 iPhone-of-your-home Imagefilter [17418] <Error>: ImageIO: CGImageSourceCreateWithURL CFURLCreateDataAndPropertiesFromResource failed with error code -15.

我的插件代码是:

-(void)none:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options
{
    //I think that here is the problem
    NSString *filePath = [options objectForKey:@"image"];
    // CREATE NSURL
    NSURL *fileNameAndPath = [NSURL URLWithString:filePath];
    NSLog(@"FILE PATH: %@",fileNameAndPath);

    // DEFINE OUR CIImage
    CIImage *beginImage = 
    [CIImage imageWithContentsOfURL:fileNameAndPath];
    CIContext *context = [CIContext contextWithOptions:nil];

    // DO ALL MODIFICATIONS HERE.


    CGImageRef cgimg = 
    [context createCGImage:beginImage fromRect:[beginImage extent]];
...
...
}

正如我在控制台上看到的,当我捕获图像并传递它时,它有一个像:

这样的URL
file://localhost/var/mobile/Applications/EFDAF913-6287-4B46-B2FE-F9B0D3349DDF/tmp/cdv_photo_031.jpg

虽然我下载的文件有一个像

这样的网址
/var/mobile/Applications/EFDAF913-6287-4B46-B2FE-F9B0D3349DDF/Documents/img18.png

1 个答案:

答案 0 :(得分:0)

您的img18.png文件位于Documents目录中。

首先,您必须使用以下命令获取指针:

NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

然后构建路径:

NSString *path = [docsDirectory stringByAppendingPathComponent:@"img18.png"];

否则,您已经在代码中知道问题所在。