No matter what I do, the following code just returns 'Success: 0' (i.e., it won't launch the hosting app):
NSURL *url = [NSURL URLWithString:@"myapp://launch"];
[[self extensionContext] openURL:url completionHandler:^(BOOL success) {
NSLog(@"Success? %i", success);
}];
If I try the myapp://launch URL directly in Safari, it works and launches my app. However the Today Widget refuses to launch it. It's sandboxed and I've checked 'Outgoing Connections' capabilities ON as well, but no luck. Anything I need to do to get it to work?
Strangely I got it working only if I used NSWorkspace. To ensure this isn't something related to a bug, I've changed my code to do the following:
if (![[NSWorkspace sharedWorkspace] openURL: url]) {
[[self extensionContext] openURL:url completionHandler:^(BOOL success) {
NSLog(@"Success? %i", success);
}];
} else {
NSLog(@"Success!");
}
来源:https://stackoverflow.com/questions/28446320/nsextensioncontext-openurl-not-working-on-mac-os-x-today-widget