自定义URL方案,不带app在前面
Custom URL Scheme without bringing app in front
我在 AppDelegate.m
中处理这样的自定义 URL 方案:
-(void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self
andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
NSString * URL = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
//Do my work with URL
}
可以,但是每次调用自定义Scheme都不会把app放在前面吗?
不幸的是,如果您的应用程序不进入前台,则无法处理 URL。
根据您正在做的事情,您可能会使用 App Extension 来完成这项工作。但这基本上是您唯一的其他潜在解决方案。
我在 AppDelegate.m
中处理这样的自定义 URL 方案:
-(void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
[appleEventManager setEventHandler:self
andSelector:@selector(handleGetURLEvent:withReplyEvent:)
forEventClass:kInternetEventClass andEventID:kAEGetURL];
}
- (void)handleGetURLEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
NSString * URL = [[event paramDescriptorForKeyword:keyDirectObject] stringValue];
//Do my work with URL
}
可以,但是每次调用自定义Scheme都不会把app放在前面吗?
不幸的是,如果您的应用程序不进入前台,则无法处理 URL。
根据您正在做的事情,您可能会使用 App Extension 来完成这项工作。但这基本上是您唯一的其他潜在解决方案。