user icon

MacアプリでURLをブラウザで開く方法

これで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];
Facebooktwitterlinkedintumblrmail

タグ:

コメントは受け付けていません。