如何让我的iOS应用程序相互通信?

时间:2011-08-15 06:58:31

标签: ios ipc

我有几个iOS应用程序,我需要他们彼此了解。更确切地说,我需要知道是否已经安装了我的一个应用程序。

我考虑过注册一个自定义URL方案(类似my-app-present://),以便我可以检查是否支持自定义方案,如果是,我会知道我的设备上已有一个应用程序。但这不起作用,因为这些方案是通过Info.plist注册的,并且应用程序在有机会检查其存在之前注册该方案。换句话说,检查总是成功。

然后我考虑在临时目录中创建一个文件,但NSTemporaryDirectory()返回应用程序沙箱中的一个文件夹,因此也不起作用。我还考虑了钥匙串,但看起来每个应用程序在iOS上都严格区分了钥匙串。

我不想查看正在运行的应用列表,我不想使用网络。你知道其他一些技巧吗?

2 个答案:

答案 0 :(得分:2)

自定义网址方案听起来不错,只要您为每个应用设置不同的方案,例如my-app-1://my-app-2://。然后(我假设这是您已经知道的)您可以使用canOpenURL:检查是否可以处理URL(即,您的应用已安装)。

答案 1 :(得分:0)

如果通过“彼此交谈”你意味着你只是想检测是否已经安装了其他应用程序,那么iHasApp是一个开源的iOS框架可以派上用场。我还没用过它。但从描述来看,它似乎是一个不错的选择。

http://www.ihasapp.com/documentation/Classes/iHasApp.html