2016-01-04 5 views
0

Я открою Safari, другие приложения системы и сторонних приложений с кодами, как:он будет отвергнут MAS, чтобы открыть Safari или другие приложения с NSTask и открытой командой

let task = NSTask() 
task.launchPath = "/usr/bin/open" 
task.arguments = ["Safari"] 
task.launch() 

он будет отвергнут Обзор MAS?

Я знаю, что Apple рекомендует использовать Apple Script и com.apple.security.scripting-target. Но сейчас он так слаб.

Благодаря

+0

Какие варианты запуска вы ищете? –

ответ

1

Фактически рекомендуемый способ запуска приложений является

NSWorkspace.sharedWorkspace().launchApplication("Safari") 

или - более сложные

let sharedWorkspace = NSWorkspace.sharedWorkspace() 
if let safariURL = sharedWorkspace.URLForApplicationWithBundleIdentifier("com.apple.safari") { 
    try? sharedWorkspace.launchApplicationAtURL(safariURL, options: NSWorkspaceLaunchOptions(), configuration: [:]) 
} 
+0

спасибо за ваш ответ. где можно найти аргументы конфигурации/запуска для таких приложений, как TextEdit, Safari? Я искал, но ничего не помогал. – guoleii

0

Даже более изощренными вы можете использовать запуск услуги LSOpenFromURLSpec, как описано in the reference. Пройдите launchs options в массиве specs.

LSLaunchURLSpec inLaunchSpec; 

inLaunchSpec.appURL = (__bridge CFURLRef) urlOfAppToOpen; 
inLaunchSpec.itemURLs = (__bridge CFArrayRef) (arrayOfurlsOfFilesToOpenWithApp); 
inLaunchSpec.passThruParams = NULL; 
inLaunchSpec.launchFlags = kLSLaunchDefaults; 
inLaunchSpec.asyncRefCon = NULL; 

CFURLRef outLaunchedURL; 
OSStatus diditOpen = LSOpenFromURLSpec (
             &inLaunchSpec, 
             &outLaunchedURL 
             ); 
+0

@guoleii помог вам? если да, вы бы хотели его принять? –

 Смежные вопросы

  • Нет связанных вопросов^_^