В моей программе objective-c мне нужно открыть URL-адрес в Safari независимо от того, какой браузер системы по умолчанию. Это означает, что это не сработает, потому что это может запустить Firefox или любой другой браузер:
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURL: url];
Я думаю, что я близок с этим:
[ws launchAppWithBundleIdentifier: @"com.apple.Safari"
options: NSWorkspaceLaunchWithoutActivation
additionalEventParamDescriptor: NULL
launchIdentifier: nil];
нужно только выяснить, как передать URL-адрес в качестве параметра... Есть ли более простой способ?
Спасибо!
Обновление: следующий код запускает Safari с URL-адресом, который я хочу, но Safari сразу заканчивается! Любые идеи, почему это?
NSWorkspace * ws = [NSWorkspace sharedWorkspace];
[ws openURLs: urls withAppBundleIdentifier:@"com.apple.Safari"
options: NSWorkspaceLaunchDefault
additionalEventParamDescriptor: NULL
launchIdentifiers: NULL];
Я наблюдал такое же поведение с LSOpenFromURLSpec
. Если экземпляр Safari запущен, он работает нормально. Если экземпляр Safari не запущен, он запускает новый и немедленно завершает его.
Обновление 2: только для Safari для веб-сайтов с встроенной Flash. С помощью приведенного выше кода я могу открыть google.com просто отлично, однако Safari вылетает для видео на YouTube, например.