mirror of
https://gitee.com/shuto/cordova-plugin-file-opener2.git
synced 2025-01-31 12:02:49 +08:00
iOS: use mimetype if provided, otherwise fall back to file extension
This commit is contained in:
parent
b29d2645d5
commit
538cd1305f
@ -32,33 +32,24 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
- (void) open: (CDVInvokedUrlCommand*)command {
|
- (void) open: (CDVInvokedUrlCommand*)command {
|
||||||
|
|
||||||
NSString *path = [[command.arguments objectAtIndex:0] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
NSString *path = [[command.arguments objectAtIndex:0] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
|
||||||
NSString *contentType = nil;
|
NSString *contentType = [command.arguments objectAtIndex:1];
|
||||||
BOOL showPreview = YES;
|
BOOL showPreview = YES;
|
||||||
BOOL useContentType = NO;
|
|
||||||
|
|
||||||
if([command.arguments count] >= 2) { // Includes contentType
|
|
||||||
contentType = [command.arguments objectAtIndex:1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ([command.arguments count] >= 3) {
|
if ([command.arguments count] >= 3) {
|
||||||
showPreview = [[command.arguments objectAtIndex:2] boolValue];
|
showPreview = [[command.arguments objectAtIndex:2] boolValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ([command.arguments count] >= 4) {
|
|
||||||
useContentType = [[command.arguments objectAtIndex:3] boolValue];
|
|
||||||
}
|
|
||||||
|
|
||||||
CDVViewController* cont = (CDVViewController*)[super viewController];
|
CDVViewController* cont = (CDVViewController*)[super viewController];
|
||||||
self.cdvViewController = cont;
|
self.cdvViewController = cont;
|
||||||
NSString *uti = nil;
|
NSString *uti = nil;
|
||||||
|
|
||||||
if(useContentType){
|
if([contentType length] == 0){
|
||||||
uti = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (__bridge CFStringRef)contentType, NULL);
|
|
||||||
} else {
|
|
||||||
NSArray *dotParts = [path componentsSeparatedByString:@"."];
|
NSArray *dotParts = [path componentsSeparatedByString:@"."];
|
||||||
NSString *fileExt = [dotParts lastObject];
|
NSString *fileExt = [dotParts lastObject];
|
||||||
|
|
||||||
uti = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExt, NULL);
|
uti = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExt, NULL);
|
||||||
|
} else {
|
||||||
|
uti = (__bridge NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, (__bridge CFStringRef)contentType, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
|
@ -38,12 +38,6 @@ FileOpener2.prototype.showOpenWithDialog = function (fileName, contentType, call
|
|||||||
exec(callbackContext.success || null, callbackContext.error || null, 'FileOpener2', 'open', [fileName, contentType, false]);
|
exec(callbackContext.success || null, callbackContext.error || null, 'FileOpener2', 'open', [fileName, contentType, false]);
|
||||||
};
|
};
|
||||||
|
|
||||||
FileOpener2.prototype.openWithContentType = function (fileName, contentType, callbackContext) {
|
|
||||||
callbackContext = callbackContext || {};
|
|
||||||
if(typeof contentType !== "string"){ throw new Error("contentType must be a String") }
|
|
||||||
exec(callbackContext.success || null, callbackContext.error || null, 'FileOpener2', 'open', [fileName, contentType, true, true]);
|
|
||||||
};
|
|
||||||
|
|
||||||
FileOpener2.prototype.uninstall = function (packageId, callbackContext) {
|
FileOpener2.prototype.uninstall = function (packageId, callbackContext) {
|
||||||
callbackContext = callbackContext || {};
|
callbackContext = callbackContext || {};
|
||||||
exec(callbackContext.success || null, callbackContext.error || null, 'FileOpener2', 'uninstall', [packageId]);
|
exec(callbackContext.success || null, callbackContext.error || null, 'FileOpener2', 'uninstall', [packageId]);
|
||||||
|
Loading…
Reference in New Issue
Block a user