我有两个应用程序(一个实际上是一个Preference Pane),我需要它们进行通信;更确切地说,如果应用程序正在运行,我需要首选项窗格向应用程序询问信息。所以我需要:
-(BOOL) isApplicationRunning:(NSString*)pathToApplication;
-(NSDictionary*) returnSomeDInfoForMe:(NSString*)pathToApplication;
关于如何做到这一点的任何想法?
TIA,Oren
答案 0 :(得分:2)
尝试使用NSDistributedNotificationCenter - 使用它可以在两个应用之间发送字典
答案 1 :(得分:0)
您无法从另一个访问一个应用数据。您可以在后台运行服务器时与服务器通信,然后将其用作中间人,但这将是一个非常糟糕的工作!
答案 2 :(得分:0)
如果只是找出某个应用是否正在运行:
:< 10.6 NSWorkspace - > launchedApplications
:> 10.6 NSRunningApplication - > runningApplication
当然是在Mac上。
使用IOS,我可能会手动执行并使用NSNotificationCenter。即当pref-pane想要检查应用程序是否正在运行时,在某处写一个状态文件,注意应用程序正在运行。如果应用程序没有响应通知,则状态文件不会被写入,因此您可以假设它未运行。
答案 3 :(得分:0)
具有相同捆绑标识符的iPhone应用程序可以访问sMe钥匙串。因此,您可以将app1中的数据写入钥匙串,然后从app2访问它。您需要通过使用正确的uiapplication委托方法对钥匙串进行智能更新以保留其他应用程序打开时的标志,但应该可以。
请注意,钥匙串是键值存储,不适用于较大的复杂数据。为此,您应该使用服务器 - 客户端结构。
对钥匙串文档的引用:
答案 4 :(得分:0)
您应该使用自定义URL方案方法。 Here's a tutorial.
简短版本:您的应用程序可以使用自定义网址互相呼叫。 URL可以像任何其他URL一样携带查询字符串参数,因此您可以传递自己的状态字符串或简短命令等。
答案 5 :(得分:0)