如何使用自定义参数从我的应用程序启动应用程序,以便检查应用程序是否由我启动?

Ped*_*ira 5 macos cocoa objective-c launching-application nsapplication

我正在开发这款推出其他应用的应用.我正在使用以下方式收听应用启动:

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
 selector:@selector(appLaunched:) name:NSWorkspaceDidLaunchApplicationNotification
 object:nil];
Run Code Online (Sandbox Code Playgroud)

我使用它启动它们(Mail只是一个例子):

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObject:@"lalalala"], NSWorkspaceLaunchConfigurationArguments, nil];
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:[NSURL URLWithString:@"/Applications/Mail.app"] options:NSWorkspaceLaunchWithoutActivation configuration:dict error:nil];
Run Code Online (Sandbox Code Playgroud)

我做了一些研究,我发现你可以在启动应用程序时发送一个参数(这就是我dict在上面的代码中使用var的原因),但我遇到了这个问题:即使使用NSWorkspaceLaunchWithoutActivation,Mail.app也是推出并专注于新的作曲窗口.我不知道为什么会这样做.

另一件事,如果我设法成功发送自定义参数而不关注应用程序,我如何检查应用程序是否由我发起(检查参数是否存在)?

PS:我正在寻找App Store准备好的方法.

Ale*_*ien 1

将时间戳 (UTC) 与您启动的应用程序名称一起发送到服务器或本地文件(如果可能)。

然后你就可以跟踪它。