From 5aeed5af8334baad05159ca75e4d72e7179d70c8 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 5 Sep 2018 17:41:39 +0200 Subject: Add URL Apple Event handling code This untested code should allow the application to respond to a Launch Services URL to open the application. From Thomas Zoechling (https://stackoverflow.com/users/100848/thomas-zoechling) on Stack Overflow: https://stackoverflow.com/questions/1991072/how-to-handle-with-a-default-url-scheme/1991162#1991162 --- CopyMailto/AppDelegate.h | 3 ++- CopyMailto/AppDelegate.m | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'CopyMailto') diff --git a/CopyMailto/AppDelegate.h b/CopyMailto/AppDelegate.h index 83e822b..df7aec0 100644 --- a/CopyMailto/AppDelegate.h +++ b/CopyMailto/AppDelegate.h @@ -10,6 +10,7 @@ @interface AppDelegate : NSObject +- (void)handleURLEvent:(NSAppleEventDescriptor *)event + withReplyEvent: (NSAppleEventDescriptor *)replyEvent; @end - diff --git a/CopyMailto/AppDelegate.m b/CopyMailto/AppDelegate.m index 3ea136a..281d151 100644 --- a/CopyMailto/AppDelegate.m +++ b/CopyMailto/AppDelegate.m @@ -15,8 +15,12 @@ @implementation AppDelegate -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { - // Insert code here to initialize your application +- (void)applicationWillFinishLaunching:(NSNotification *)aNotification { + [[NSAppleEventManager sharedAppleEventManager] + setEventHandler:self + andSelector:@selector(handleURLEvent:withReplyEvent:) + forEventClass:kInternetLocationMail + andEventID:kAEOpenApplication]; } @@ -24,5 +28,12 @@ // Insert code here to tear down your application } +- (void)handleURLEvent:(NSAppleEventDescriptor *)event + withReplyEvent: (NSAppleEventDescriptor *)replyEvent +{ + NSString *url = [[event paramDescriptorForKeyword:keyDirectObject] + stringValue]; + NSLog(@"%@", url); +} @end -- cgit v1.2.3