我有2个应用程序,我想知道是否在我的应用程序1中安装了应用程序2(并且在我的应用程序2中,检查我的应用程序1是否已安装)。
我知道这个功能:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]]
但问题是我必须在我的Info.plist中添加LSApplicationQueriesSchemes
中的网址方案,但也许明天我想开发第三个应用程序,我不想重建我的所有应用程序并包含我的新应用程序1和2中的url方案。
是否可以通过开发者ID或类似内容检查用户是否拥有我的某个应用程序?没有重建我的应用程序的新版本只是为了在我发布新应用程序时添加1个url方案?
谢谢
答案 0 :(得分:1)
您可以让所有应用使用相同的“应用组”(有关如何设置的更多信息,这很简单),您可以使用该组标识创建NSUserDefaults
套件。
启动时,每个应用都可以将Appname Installed
密钥写入NSUserDefaults
套件,因为它是您应用之间的共享套件,其他人可以读取该值并知道是否安装了Appname
这样做的缺点是你的应用程序无法知道它何时被卸载,所以即使应用程序被删除,如果它已经安装,只要该应用程序被删除就会显示。
答案 1 :(得分:1)
执行此操作的最佳方法是使用URL方案。您的每个应用都应该注册一个可以处理的网址方案,然后在UIApplication
上拨打canOpenURL(_:)的其他应用来测试您的应用是否已安装。
示例:
如果您的MyApp1已经注册了URL方案myapp1://
,您可以从其他应用中获取:
UIApplication.shared.canOpenURL(URL(string: "myapp1://")!)
要特别注意您需要添加到Info.plist的LSApplicationQueriesSchemes
密钥。这需要这个才能工作,并在我上面链接的文档页面中提到。
与应用程序组方法相反,这将正确识别您的应用程序何时被卸载。