From 9b507b1d5bbf3ca6ba847093eb8c5582e5b9ea81 Mon Sep 17 00:00:00 2001 From: Guy Date: Sun, 3 Mar 2019 23:33:23 +0200 Subject: [PATCH 1/2] Added support for https urls access to local files. --- src/ios/CDVFile.m | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/ios/CDVFile.m b/src/ios/CDVFile.m index 59e7d6407..e02281c20 100644 --- a/src/ios/CDVFile.m +++ b/src/ios/CDVFile.m @@ -89,7 +89,12 @@ - (NSString *)filesystemNameForLocalURI:(NSURL *)uri if (pathComponents != nil && pathComponents.count > 1) { return [pathComponents objectAtIndex:1]; } - } else if ([[uri scheme] isEqualToString:kCDVAssetsLibraryScheme]) { + } + else if ([[uri scheme] isEqualToString:@"https"] && [uri pathComponents] != nil && + [uri pathComponents].count > 2 && [[[uri pathComponents] objectAtIndex:1] isEqualToString:@"cdvfile"]) { + return [pathComponents objectAtIndex:2]; + } + else if ([[uri scheme] isEqualToString:kCDVAssetsLibraryScheme]) { return @"assets-library"; } return nil; @@ -114,7 +119,20 @@ - (NSString *)fullPathForLocalURI:(NSURL *)uri return @""; } return [path substringFromIndex:slashRange.location]; - } else if ([[uri scheme] isEqualToString:kCDVAssetsLibraryScheme]) { + } + else if ([[uri scheme] isEqualToString:@"https"] && [uri pathComponents] != nil && + [uri pathComponents].count > 2 && [[[uri pathComponents] objectAtIndex:1] isEqualToString:@"cdvfile"]) { + NSString *path = [[uri path] substringFromIndex:(@"cdvfile".length + 1)]; + if ([uri query]) { + path = [NSString stringWithFormat:@"%@?%@", path, [uri query]]; + } + NSRange slashRange = [path rangeOfString:@"/" options:0 range:NSMakeRange(1, path.length-1)]; + if (slashRange.location == NSNotFound) { + return @""; + } + return [path substringFromIndex:slashRange.location]; + } + else if ([[uri scheme] isEqualToString:kCDVAssetsLibraryScheme]) { return [[uri absoluteString] substringFromIndex:[kCDVAssetsLibraryScheme length]+2]; } return nil; @@ -142,7 +160,9 @@ @implementation CDVFilesystemURLProtocol + (BOOL)canInitWithRequest:(NSURLRequest*)request { NSURL* url = [request URL]; - return [[url scheme] isEqualToString:kCDVFilesystemURLPrefix]; + return [[url scheme] isEqualToString:kCDVFilesystemURLPrefix] || + ([[url scheme] isEqualToString:@"https"] && [url pathComponents] != nil && + [url pathComponents].count > 2 && [[[url pathComponents] objectAtIndex:1] isEqualToString:@"cdvfile"]); } + (NSURLRequest*)canonicalRequestForRequest:(NSURLRequest*)request From 6756f563e13c0ab0a2bf220392987462102a8853 Mon Sep 17 00:00:00 2001 From: Guy Lando Date: Sun, 3 Mar 2019 23:50:17 +0200 Subject: [PATCH 2/2] Update CDVFile.m Fixed typo --- src/ios/CDVFile.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ios/CDVFile.m b/src/ios/CDVFile.m index e02281c20..e1e2d64f6 100644 --- a/src/ios/CDVFile.m +++ b/src/ios/CDVFile.m @@ -92,7 +92,7 @@ - (NSString *)filesystemNameForLocalURI:(NSURL *)uri } else if ([[uri scheme] isEqualToString:@"https"] && [uri pathComponents] != nil && [uri pathComponents].count > 2 && [[[uri pathComponents] objectAtIndex:1] isEqualToString:@"cdvfile"]) { - return [pathComponents objectAtIndex:2]; + return [[uri pathComponents] objectAtIndex:2]; } else if ([[uri scheme] isEqualToString:kCDVAssetsLibraryScheme]) { return @"assets-library";