我怎样才能让我的iOS应用程序相互交谈?

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

我想过注册一个自定义URL模式(类似于my-app-present:// ),这样我就可以检查自定义模式是否被支持,如果是的话,我会知道设备上已经有一个应用了。 但是这样做是行不通的,因为这些scheme是通过Info.plist注册的,应用程序在有机会检查它的存在之前注册这个scheme。 换句话说,检查总是成功的。

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

我不想浏览正在运行的应用程序的列表,我不想使用networking。 你知道一些其他的技巧吗?

自定义URLscheme方法听起来很好,只要您对每个应用程序有不同的scheme,例如my-app-1://my-app-2:// 。 然后(我认为这是你已经知道),你可以使用canOpenURL:检查是否可以处理的URL(即,您的应用程序已安装)。

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

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