From da31291a965ea898a59a0859c7e455144eaea195 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 5 Sep 2018 19:00:55 +0200 Subject: Add `DefaultURLHandler`; Get current handler for `mailto` URLs Add a class to get the current bundle handler for `mailto` URLs. It will be extended to set CopyMailto as the default handler after saving the original. --- CopyMailto/DefaultURLHandler.h | 15 +++++++++++++++ CopyMailto/DefaultURLHandler.m | 28 ++++++++++++++++++++++++++++ CopyMailto/main.m | 3 +++ 3 files changed, 46 insertions(+) create mode 100644 CopyMailto/DefaultURLHandler.h create mode 100644 CopyMailto/DefaultURLHandler.m (limited to 'CopyMailto') diff --git a/CopyMailto/DefaultURLHandler.h b/CopyMailto/DefaultURLHandler.h new file mode 100644 index 0000000..7bad3d0 --- /dev/null +++ b/CopyMailto/DefaultURLHandler.h @@ -0,0 +1,15 @@ +// +// DefaultURLHandler.h +// CopyMailto +// +// Created by tw on 9/5/18. +// Copyright © 2018 tw. All rights reserved. +// + +#import + +@interface DefaultURLHandler : NSObject + ++ (void)saveDefaultURLHandler; + +@end diff --git a/CopyMailto/DefaultURLHandler.m b/CopyMailto/DefaultURLHandler.m new file mode 100644 index 0000000..a8d124f --- /dev/null +++ b/CopyMailto/DefaultURLHandler.m @@ -0,0 +1,28 @@ +// +// DefaultURLHandler.m +// CopyMailto +// +// Created by tw on 9/5/18. +// Copyright © 2018 tw. All rights reserved. +// + +#import "DefaultURLHandler.h" + +@implementation DefaultURLHandler + +//LSSetDefaultHandlerForURLScheme(); ++ (void)saveDefaultURLHandler { + CFStringRef mailto = CFStringCreateWithCString( + kCFAllocatorDefault, + "mailto", + kCFStringEncodingUTF8 + ); + + CFStringRef bundle_identifier = LSCopyDefaultHandlerForURLScheme(mailto); + NSLog(@"%@", bundle_identifier); + + CFRelease(mailto); + CFRelease(bundle_identifier); +} + +@end diff --git a/CopyMailto/main.m b/CopyMailto/main.m index dd3e4a5..8dfe2c1 100644 --- a/CopyMailto/main.m +++ b/CopyMailto/main.m @@ -8,6 +8,9 @@ #import +#import "DefaultURLHandler.h" + int main(int argc, const char * argv[]) { + [DefaultURLHandler saveDefaultURLHandler]; return NSApplicationMain(argc, argv); } -- cgit v1.2.3