iOS-判断是否安装某个App并从另一个App中启动该App(未安装跳转到AppStore)

前言:

非越狱设备,在你的应用里无法知道系统安装了什么别的应用。 

如果想要准确的通过程序控制和发现本地安装的应用,目前只能在破解版的ios

上开始显示,但是我们可以通过一些其他的途径获取到手机是否安装过某些应用。

正文:

一、如何判断是否安装App

用 UIApplication  的 canOpenUrl  方法,当然前提是要检测的应用程序注册了一个唯一的url标识,并且你知道该标识url。

1、注册该App的唯一url标识

我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URLScheme,URLScheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。

 

Info.plist中添加URL

Schemes :***

你访问的URL

为:***://

在Safari中输入***://即可跳转到你的App

从浏览器跳入到app中:

(当系统中需要安装了该app,直接打开该app,若没有直接跳转到app下载页面。 暂时没好的解决方案,访问***://的同时,也打开app下载页面,使浏览器先操作***://,然后在打开app下载页面)

在AppDelegate中实现下面的方法

- (BOOL

)application:(UIApplication *)application handleOpenURL

:(NSURL *)url;

从app跳入其他的app

这个方法判断手机中是否存在这个应用

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"***://"]]

返回值为BOOL类型

如果返回YES则表示此应用在手机中安装过,反之则没有安装过.

还有一种,就是判断手机中有那些软件处于运行等待状态:

NSArray * processes = [[UIDevice currentDevice] runningProcesses];

for (NSDictionary * dict in processes){

 NSLog(@”%@ – %@”, [dict objectForKey:@"ProcessID"], [dict objectForKey:@"ProcessName"]);

}

iOS 从C APP里启动 D APP 

首先在D APP里设置 URL Schemes 

在info.plist 文件里添加URL Schemes 

URL Types -->item0 --> URL Schemes --> yipai

 

然后再回到C APP 找到info.plist 文件

添加 LSApplicationQueriesSchemes  --> item0 yip

(单击左侧按钮至方向朝下,再单击中间的添加+按钮即可添加)​

你可能感兴趣的:(iOS)