これでHTTPなURLスキームに対応しているアプリのidentifierの一覧が取れます。
NSArray *identifiers = (NSArray*)LSCopyAllHandlersForURLScheme((CFStringRef)@"http");
ただ、このままだとブラウザでないアプリケーション(例えばEvernoteなど)も取れてしまいますので、うまい具合にブラウザだけ取る方法があれば教えてください。
次にURLをデフォルトブラウザで開く方法
NSURL *url = [NSURL URLWithString:@"http://www.example.com/"];
[[NSWorkspace sharedWorkspace] openURL:url];
最後にURLを指定のアプリケーションで開く方法
NSURL *url = [NSURL URLWithString:@"http://www.example.com/"];
[[NSWorkspace sharedWorkspace] openURLs:[NSArray arrayWithObject:url]
withAppBundleIdentifier:@"com.apple.Safari" //取得したidentifierを渡してやる
options:NSWorkspaceLaunchDefault
additionalEventParamDescriptor:nil
launchIdentifiers:nil];
Tags: Objective-C