summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-09-21 18:43:03 +0200
committerJules Laplace <julescarbon@gmail.com>2020-09-21 18:43:03 +0200
commit7f6c5134780ad3cedc718772b40578f0170f200e (patch)
tree15a120d91855ae66f42111e05f696e5600a9b832 /StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m
parent853bd5fa85812316a72b2f5ce755dc0facb91932 (diff)
cordova-plugin-inappbrowser welcome to the family!!
Diffstat (limited to 'StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m')
-rw-r--r--StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m89
1 files changed, 89 insertions, 0 deletions
diff --git a/StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m b/StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m
new file mode 100644
index 00000000..9d579e15
--- /dev/null
+++ b/StoneIsland/plugins/cordova-plugin-inappbrowser/src/osx/CDVInAppBrowser.m
@@ -0,0 +1,89 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ */
+
+#import "CDVInAppBrowser.h"
+#import <Cordova/CDVPluginResult.h>
+
+#define kInAppBrowserTargetSelf @"_self"
+#define kInAppBrowserTargetSystem @"_system"
+#define kInAppBrowserTargetBlank @"_blank"
+
+@interface CDVInAppBrowser () {
+}
+@end
+
+@implementation CDVInAppBrowser
+
+- (void)pluginInitialize
+{
+}
+
+- (BOOL) isSystemUrl:(NSURL*)url
+{
+ if ([[url host] isEqualToString:@"itunes.apple.com"]) {
+ return YES;
+ }
+
+ return NO;
+}
+
+- (void)open:(CDVInvokedUrlCommand*)command
+{
+ CDVPluginResult* pluginResult;
+
+ NSString* url = [command argumentAtIndex:0];
+ NSString* target = [command argumentAtIndex:1 withDefault:kInAppBrowserTargetSelf];
+
+ self.callbackId = command.callbackId;
+
+ if (url != nil) {
+
+ NSURL* baseUrl = [NSURL URLWithString:url];
+
+ NSURL* absoluteUrl = [[NSURL URLWithString:url relativeToURL:baseUrl] absoluteURL];
+
+ if ([self isSystemUrl:absoluteUrl]) {
+ target = kInAppBrowserTargetSystem;
+ }
+
+ if ([target isEqualToString:kInAppBrowserTargetSelf]) {
+ //[self openInCordovaWebView:absoluteUrl withOptions:options];
+ pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Not Yet Implemented for OSX: [self openInCordovaWebView:absoluteUrl withOptions:options]"];
+ } else if ([target isEqualToString:kInAppBrowserTargetSystem]) {
+ [self openInSystem:absoluteUrl];
+ pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+ } else { // _blank or anything else
+ //[self openInInAppBrowser:absoluteUrl withOptions:options];
+ pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Not Yet Implemented for OSX: [self openInInAppBrowser:absoluteUrl withOptions:options]"];
+ }
+
+ } else {
+ pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"incorrect number of arguments"];
+ }
+ [pluginResult setKeepCallback:[NSNumber numberWithBool:YES]];
+ [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+}
+
+- (void)openInSystem:(NSURL*)url
+{
+ [[NSWorkspace sharedWorkspace] openURL:url];
+}
+
+@end
+