2016-01-04 2 views
0

Je vais ouvrir Safari, d'autres applications du système et des applications tierces avec des codes comme:sera-il être rejeté par MAS pour ouvrir Safari ou d'autres applications avec NSTask et commande d'ouverture

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

sera-il être rejeté par Examen MAS?

Je sais qu'il est recommandé par Apple qui utilise Apple Script et com.apple.security.scripting-targets. Mais c'est si faible maintenant.

Merci

+0

Quels types d'options de lancement recherchez-vous? –

Répondre

1

En fait, la méthode recommandée pour lancer des applications est

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

ou - plus sophistiqué

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

merci pour votre réponse. Où puis-je trouver des arguments de configuration/lancement pour des applications comme TextEdit, Safari? J'ai cherché mais n'ai rien d'utile. – guoleii

0

vous pouvez même plus sophistiqués utiliser les services de lancement LSOpenFromURLSpec comme décrit in the reference. Passez launchs options dans le tableau 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 cette réponse vous a-t-elle aidé? Si oui, voulez-vous l'accepter? –