我有几个iOS应用程序,我需要他们彼此了解。更确切地说,我需要知道是否已经安装了我的一个应用程序。
我考虑过注册一个自定义URL方案(类似my-app-present://
),以便我可以检查是否支持自定义方案,如果是,我会知道我的设备上已有一个应用程序。但这不起作用,因为这些方案是通过Info.plist
注册的,并且应用程序在有机会检查其存在之前注册该方案。换句话说,检查总是成功。
然后我考虑在临时目录中创建一个文件,但NSTemporaryDirectory()
返回应用程序沙箱中的一个文件夹,因此也不起作用。我还考虑了钥匙串,但看起来每个应用程序在iOS上都严格区分了钥匙串。
我不想查看正在运行的应用列表,我不想使用网络。你知道其他一些技巧吗?
答案 0 :(得分:2)
自定义网址方案听起来不错,只要您为每个应用设置不同的方案,例如my-app-1://
和my-app-2://
。然后(我假设这是您已经知道的)您可以使用canOpenURL:
检查是否可以处理URL(即,您的应用已安装)。
答案 1 :(得分:0)
如果通过“彼此交谈”你意味着你只是想检测是否已经安装了其他应用程序,那么iHasApp是一个开源的iOS框架可以派上用场。我还没用过它。但从描述来看,它似乎是一个不错的选择。