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

标签 objective-c macos cocoa launching-application nsapplication

我正在开发这个可以启动其他应用程序的应用程序。我正在使用以下方式收听应用启动:

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
 selector:@selector(appLaunched:) name:NSWorkspaceDidLaunchApplicationNotification
 object:nil];

然后我使用(邮件只是一个示例)启动它们:

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

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

另一件事,如果我在没有聚焦应用程序的情况下成功发送自定义参数,我如何检查应用程序是否由我启动(检查参数是否存在)?

PS:我正在寻找适用于 App Store 的方法。

最佳答案

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

然后你就可以追踪了。

关于objective-c - 如何使用自定义参数从我的应用程序启动应用程序,以便我可以检查该应用程序是否由我启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375061/

相关文章:

objective-c - 如何交换 MAAttachedWindow 的 View

iphone - XCode 样板代码困惑,为什么要添加多次?

objective-c - 如何 NSLog 一个 CGRect

iphone - 无法设置对象 - 只读属性或未找到 setter

macos - 时间输出中最大常驻集大小的单位

objective-c - 核心数据继承 : Is it OK to do this?

objective-c - cocoa 应用程序插件/糖?

ios - PFUser 当前用户在 NSObject 子类中不可用

arrays - 在不使用索引的情况下使用for循环在Swift 4中填充数组

ios - macos - 在 macOS 10.13 上安装 xcode 9.2