Reputation: 190799
I have a URLHandler that launches some application, the main code is as follows.
@implementation URLHandlerCommand
- (id)performDefaultImplementation {
NSString *urlString = [self directParameter];
NSLog(@"url :=: %@", urlString);
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/open"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"-a", @"Path Finder.app", urlString, nil];
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
return nil;
}
As the goal of this routine is to launch another application, I'd like to make this URLHandler quit after launching an App. How can I do that?
Upvotes: 11
Views: 18756
Reputation: 34185
You don't have to launch open
using NSTask
... open
just calls into Launch Services, some of whose functionality is directly available from NSWorkspace.
To quit, you just call [[NSApplication sharedApplication] terminate:nil]
. See NSApplication
documentation.
Upvotes: 19
Reputation: 3614
This has been answered here: Proper way to exit iPhone application? however you should also take a look at August's answer. Although it's not the accepted answer, it has been voted higher and it also follows Apple's set standards since Apple advises against force quitting iPhone applications.
Upvotes: 1