Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测iOS设备上是否安装了其他应用程序_Ios - Fatal编程技术网

检测iOS设备上是否安装了其他应用程序

检测iOS设备上是否安装了其他应用程序,ios,Ios,我玩的是第二代,在我安装了第1代之后,第2代说“好的,我看到第1代了,这里有免费的武器给你” 我如何做类似的事情——检测另一个应用程序的安装——以及这种机制的限制是什么?一个应用程序可以注册自定义URL处理程序,以便系统可以直接向它们发送特定类型的请求 一个常见的例子是 appname:// 或者,如果一个应用程序有一个相关的facebook应用程序,它通常会用它的facebook应用程序id来处理facebook重定向到它自己 fb37238917293124://(其中数字仅为应用程序ID

我玩的是第二代,在我安装了第1代之后,第2代说“好的,我看到第1代了,这里有免费的武器给你”


我如何做类似的事情——检测另一个应用程序的安装——以及这种机制的限制是什么?

一个应用程序可以注册自定义URL处理程序,以便系统可以直接向它们发送特定类型的请求

一个常见的例子是

appname://
或者,如果一个应用程序有一个相关的facebook应用程序,它通常会用它的facebook应用程序id来处理facebook重定向到它自己

fb37238917293124://
(其中数字仅为应用程序ID)

通过调用
UIApplication
s
canOpenURL
方法,了解应用程序的URL方案将允许您查看该应用程序是否安装在给定设备上

它看起来是这样的:

BOOL twitterInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"twitter://"]];

也许Epoch是通过你的帐户检测到的,并且在那里有相关信息?@mattkc7这意味着Epoch是在某个自助服务器上,而不是在iOS设备上这样做的?非常感谢!例如,
twitter安装
如果twitter应用程序被用户杀死,则为“是”?关于此URL,它们是(流行)应用程序的公共URL?它们并不总是公共的,我可以看到一些开发人员希望在非公共用途中使用URL功能(即生成“深层应用程序链接”)不一定要有第三方沟通。此外,并不是所有的应用程序都会有它们,所以你将很难找到所有已安装的应用程序。谢谢,@JustinAmberson!这就是我要搜索的。如果你能找到一个应用程序的IPA,你可以将它提取出来,并从它的plist文件中获取任何自定义URL方案。它们将位于
CFBundleURLTypes
键中,在
CFBundleURLSchemes
中。此外,要手动测试任何自定义方案,您只需将它们粘贴到手机上的safari地址栏中,然后查看是否被重定向到应用程序中。例如,在safari中键入
twitter://
,应该可以将您重定向到twitter应用程序。