summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/CordovaLib/Classes/Public
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2017-10-26 01:41:16 +0200
committerJules Laplace <julescarbon@gmail.com>2017-10-26 01:41:16 +0200
commit8dae6a5044f9c1b7a8497cc1c96155fd262b40cf (patch)
tree6f546503efcb198a193f919efafb83977abb9535 /StoneIsland/platforms/ios/CordovaLib/Classes/Public
parent531c60ee7ecbee516812d560b63a8317c3cf3590 (diff)
iphone x fixes
Diffstat (limited to 'StoneIsland/platforms/ios/CordovaLib/Classes/Public')
-rw-r--r--StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m13
-rw-r--r--StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h3
-rw-r--r--StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h2
-rw-r--r--StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m33
4 files changed, 50 insertions, 1 deletions
diff --git a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m
index 821b957e..5408903e 100644
--- a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m
+++ b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAppDelegate.m
@@ -79,8 +79,21 @@
return NO;
}
+ NSMutableDictionary * openURLData = [[NSMutableDictionary alloc] init];
+
+ [openURLData setValue:url forKey:@"url"];
+
+ if (sourceApplication) {
+ [openURLData setValue:sourceApplication forKey:@"sourceApplication"];
+ }
+
+ if (annotation) {
+ [openURLData setValue:annotation forKey:@"annotation"];
+ }
+
// all plugins will get the notification, and their handlers will be called
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLNotification object:url]];
+ [[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLWithAppSourceAndAnnotationNotification object:openURLData]];
return YES;
}
diff --git a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h
index 38bdfd73..af63494c 100644
--- a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h
+++ b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVAvailability.h
@@ -67,6 +67,7 @@
#define __CORDOVA_4_3_0 40300
#define __CORDOVA_4_3_1 40301
#define __CORDOVA_4_4_0 40400
+#define __CORDOVA_4_5_0 40500
/* coho:next-version,insert-before */
#define __CORDOVA_NA 99999 /* not available */
@@ -79,7 +80,7 @@
*/
#ifndef CORDOVA_VERSION_MIN_REQUIRED
/* coho:next-version-min-required,replace-after */
- #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_4_4_0
+ #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_4_5_0
#endif
/*
diff --git a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h
index d59507ae..9a7d7de4 100644
--- a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h
+++ b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.h
@@ -32,6 +32,7 @@
extern NSString* const CDVPageDidLoadNotification;
extern NSString* const CDVPluginHandleOpenURLNotification;
+extern NSString* const CDVPluginHandleOpenURLWithAppSourceAndAnnotationNotification;
extern NSString* const CDVPluginResetNotification;
extern NSString* const CDVViewWillAppearNotification;
extern NSString* const CDVViewDidAppearNotification;
@@ -65,6 +66,7 @@ extern NSString* const CDVRemoteNotificationError CDV_DEPRECATED(4.0, "Functiona
- (void)pluginInitialize;
- (void)handleOpenURL:(NSNotification*)notification;
+- (void)handleOpenURLWithApplicationSourceAndAnnotation:(NSNotification*)notification;
- (void)onAppTerminate;
- (void)onMemoryWarning;
- (void)onReset;
diff --git a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m
index f16f7fbe..79316561 100644
--- a/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m
+++ b/StoneIsland/platforms/ios/CordovaLib/Classes/Public/CDVPlugin.m
@@ -42,6 +42,7 @@
NSString* const CDVPageDidLoadNotification = @"CDVPageDidLoadNotification";
NSString* const CDVPluginHandleOpenURLNotification = @"CDVPluginHandleOpenURLNotification";
+NSString* const CDVPluginHandleOpenURLWithAppSourceAndAnnotationNotification = @"CDVPluginHandleOpenURLWithAppSourceAndAnnotationNotification";
NSString* const CDVPluginResetNotification = @"CDVPluginResetNotification";
NSString* const CDVLocalNotification = @"CDVLocalNotification";
NSString* const CDVRemoteNotification = @"CDVRemoteNotification";
@@ -73,6 +74,7 @@ NSString* const CDVViewWillTransitionToSizeNotification = @"CDVViewWillTransitio
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppTerminate) name:UIApplicationWillTerminateNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onMemoryWarning) name:UIApplicationDidReceiveMemoryWarningNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleOpenURL:) name:CDVPluginHandleOpenURLNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleOpenURLWithApplicationSourceAndAnnotation:) name:CDVPluginHandleOpenURLWithAppSourceAndAnnotationNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onReset) name:CDVPluginResetNotification object:theWebViewEngine.engineWebView];
self.webViewEngine = theWebViewEngine;
@@ -140,6 +142,37 @@ NSString* const CDVViewWillTransitionToSizeNotification = @"CDVViewWillTransitio
}
}
+/*
+ NOTE: calls into JavaScript must not call or trigger any blocking UI, like alerts
+ */
+- (void)handleOpenURLWithApplicationSourceAndAnnotation: (NSNotification*)notification
+{
+
+ // override to handle urls sent to your app
+ // register your url schemes in your App-Info.plist
+
+ // The notification object is an NSDictionary which contains
+ // - url which is a type of NSURL
+ // - sourceApplication which is a type of NSString and represents the package
+ // id of the app that calls our app
+ // - annotation which a type of Property list which can be several different types
+ // please see https://developer.apple.com/library/content/documentation/General/Conceptual/DevPedia-CocoaCore/PropertyList.html
+
+ NSDictionary* notificationData = [notification object];
+
+ if ([notificationData isKindOfClass: NSDictionary.class]){
+
+ NSURL* url = notificationData[@"url"];
+ NSString* sourceApplication = notificationData[@"sourceApplication"];
+ id annotation = notificationData[@"annotation"];
+
+ if ([url isKindOfClass:NSURL.class] && [sourceApplication isKindOfClass:NSString.class] && annotation) {
+ /* Do your thing! */
+ }
+ }
+}
+
+
/* NOTE: calls into JavaScript must not call or trigger any blocking UI, like alerts */
- (void)onAppTerminate
{