私の Objective-C プログラムでは、システムのデフォルト ブラウザが何であれ、Safari で URL を開く必要があります。これは、Firefox やその他のブラウザーを起動する可能性があるため、これは機能しないことを意味します。
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURL: url];
私はこれに近いと思います:
[ws launchAppWithBundleIdentifier: @"com.apple.Safari"
options: NSWorkspaceLaunchWithoutActivation
additionalEventParamDescriptor: NULL
launchIdentifier: nil];
パラメータとして URL を渡す方法を理解する必要があるだけです...もっと簡単な方法はありますか?
ありがとう!
更新:次のコードは、必要な URL で Safari を起動しますが、Safari はすぐに終了します! これはなぜですか?
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari"
options: NSWorkspaceLaunchDefault
additionalEventParamDescriptor: NULL
launchIdentifiers: NULL];
で同じ動作を観察しましたLSOpenFromURLSpec
。Safari インスタンスが実行されている場合、正常に動作します。実行中の Safari インスタンスがない場合は、新しいインスタンスを開始し、すぐに終了します。
更新 2: Safari は、Flash が埋め込まれた Web サイトでのみクラッシュします。上記のコードを使用すると、google.com を問題なく開くことができますが、たとえば、YouTube ビデオで Safari がクラッシュします。