如果是Xcode 4.6 ,那么按照下面的方法添加:

解决方案:

从91SDK3.2.5开始要求接入方需要设置一个URL Scheme,设置方法如下:选中工程中的Target,选中Info标签页,找到底下的URL Types,展开,点击加号,创建一个新的URL Scheme。

171300xkniiaxbbnwq9yzy.png.thumb.jpg

点击后,Identifier字段填入你的软件标识符,URL Schemes字段填入格式为:91-xxxxx,其中xxxx为你的软件标识符。Role字段可以设置为None,Icon字段可以不填。示例如下:

1713376wx166ne1r66aqw6.png

2. 然后 在主动设备的应用程序A中,通过  这个方法判断手机中是否存在这个应用B

[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString"XXX://"]];

复制代码

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

具体代码如下:

-(BOOL) APCheckIfAppInstalled2:(NSString *)urlSchemes

{

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:urlSchemes]])

{

NSLog(@" installed");

return YES;

}

else

{

return NO;

}

}

调用  APCheckIfAppInstalled2:XXX  就可以判断 是否安装了应用程序B 了。

这个方法不管对越狱过的iOS设备还是没有越狱过的设备都生效。

还有另外一个 查看

com.apple.mobile.installation.plist  系统文件的方法,通过 bundle identifier 来判断,但是只能判断越狱机,因为越狱机才能访问到这个文件,在非越狱的机器中,因为不允许应用程序访问沙盒环境以外的目录,所以不能读取这个文件,甚至判断这个文件是否存在都会失败。

代码如下:

-(BOOL) APCheckIfAppInstalled:(NSString *)bundleIdentifier

{

static NSString *const cacheFileName = @"com.apple.mobile.installation.plist";

NSString *relativeCachePath = [[@"Library" stringByAppendingPathComponent: @"Caches"] stringByAppendingPathComponent: cacheFileName];

NSDictionary *cacheDict = nil;

NSString *path = nil;

// Loop through all possible paths the cache could be in

for (short i = 0; 1; i++)

{

switch (i)

{

case 0: // Jailbroken apps will find the cache here; their home directory is /var/mobile

path = [NSHomeDirectory() stringByAppendingPathComponent: relativeCachePath];

break;

case 1: // App Store apps and Simulator will find the cache here; home (/var/mobile/) is 2 directories above sandbox folder

path = [[NSHomeDirectory() stringByAppendingPathComponent: @"../.."] stringByAppendingPathComponent: relativeCachePath];

break;

case 2: // If the app is anywhere else, default to hardcoded /var/mobile/

path = [@"/var/mobile" stringByAppendingPathComponent: relativeCachePath];

break;

default: // Cache not found (loop not broken)

return NO;

break;

}

BOOL isDir = NO;

if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] ) // Ensure that file exists

{

if (isDir == YES)

{

NSLog(@"Dir");

}

else

{

cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];

}

}

if (cacheDict) // If cache is loaded, then break the loop. If the loop is not "broken," it will return NO later (default: case)

break;

}

NSDictionary *system = [cacheDict objectForKey: @"System"]; // First check all system (jailbroken) apps

if ([system objectForKey: bundleIdentifier])

return YES;

NSDictionary *user = [cacheDict objectForKey: @"User"]; // Then all the user (App Store /var/mobile/Applications) apps

if ([user objectForKey: bundleIdentifier])

return YES;

// If nothing returned YES already, we'll return NO now

return NO;

}

转载于:https://www.cnblogs.com/CJH5209/p/6027444.html

如何判断ios设备中是否安装了某款应用相关推荐

  1. 同步推软件:查看ios设备中persistentDataPath下文件,安装ipa

    1.使用Unity开发的app,有可能会用到PersistentDataPath,在ios设备中可以借助同步推软件来查看(mac上也有,不过更新不是太频繁,经常下载后和mac os系统不兼容,不可用) ...

  2. IOS企业版app部署到自己服务器,不通过AppStore,在iOS设备上直接安装应用程序

    IOS企业版app部署到服务器上说明 正对ios升级得ios7 以后,plist文件必须放到 https得服务器上了,http不可以用了. 解决方式: 找一个第三方https外链的网盘(推荐:七牛云存 ...

  3. 如何使用电脑共享给苹果iOS设备下载和安装APP

    现在的iTunes已经不能管理应用程序了, 而iMazing不但能够给具有文件共享功能的APP传输文档,还可以给设备安装或者卸载APP,极大地方便了使用者对应用程序的管理. 一.应用程序的下载 借助i ...

  4. 转 如何在IOS设备中去掉屏幕上的status bar

    引入 如何在IOS设备中去掉屏幕上的status bar,即:不显示设备上方的[网络.时间.电池??]条? 操作 方法一: 在-info.list项目文件中,加上"Status bar is ...

  5. 防止在iOS设备中的Safari将数字识别为电话号码

    转:防止在iOS设备中的Safari将数字识别为电话号码 在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录. 别的地方倒也罢了,如果在用户名 ...

  6. 在iOS设备中跑Python脚本

    在iOS设备中运行python脚本?那不就意味着可以在手机上跑爬虫,可以使用各种牛逼哄哄的python库了吗. 这个标题对我很有吸引力,曾经就有见到过在iOS平台上的python编译器(很多iOS上p ...

  7. 从ios设备中获取ipa并且获取其中的资源

    1.从ios设备中获取ipa的方法很简单. 使用itools工具就,点击应用栏目. 然后再选择你需要的获取的ipa的程序,选中之后,点击右键备份,选择目录存放就可以获取ipa了 2.修改.ipa为.z ...

  8. 不通过AppStore,在iOS设备上直接安装应用程序的原理

    本文转载至  http://mobile.51cto.com/hot-439095.htm 通过itms-services协议,可以通过safari浏览器直接在iOS设备上安装应用程序.利用这种方式, ...

  9. 不通过App Store,在iOS设备上直接安装应用程序

    今天在iOS设备上安装天翼云存储app,在safari上直接打开http://cloud.189.cn/wap/index.jsp,点击"点击免费安装",如下图: 神奇的事情发生了 ...

最新文章

  1. 损失函数为什么用平方形式(二)
  2. oracle 父latch:library cache,library cache latch等待事件
  3. caffe学习笔记25-过拟合原因及分析
  4. php中perl配置,Windows下 Apache、PHP和Perl的安装配置
  5. TensorFlow HOWTO 5.1 循环神经网络(时间序列)
  6. mysql数据库复习
  7. julia下载QQ.jl
  8. 英语 名词复数的变化及其发音
  9. java的inputbox,解释InputBox函数(输入函数)的用途
  10. android 设置路由器,安卓手机如何设置无线路由器 实现WiFi上网
  11. 小米云服务器怎么更新文件,小米云服务使用手册
  12. Notepad++下载安装教程
  13. linux搭建 eth节点,Ethereum全节点搭建
  14. qt登录界面简单制作,是真的保姆级别了!!!
  15. Simulink Simscape基础仿真电路
  16. Python 国内镜像
  17. 信息收集之——旁站、C段
  18. 探究计算机的硬件组成 教案,初一信息技术探究计算机的硬件组成教案
  19. 英文信件中,招呼与落款的呼应:
  20. 铁通,痛在哪里?(二)

热门文章

  1. Java: System.exit() 与安全策略
  2. INDEX_JOIN
  3. HDOJ1016 素数环(DFS)
  4. erlang/thrift快速安装
  5. java中先序创建一棵树,恳求大佬指点!!!首先标明空子树的先根遍历序列建立一棵二叉树...
  6. Leetcode 116. 填充每个节点的下一个右侧节点指针 解题思路及C++实现
  7. Ignite 的helloworld第二弹!(附源码!下载即用)
  8. 安全管家安卓_pc-cillin和腾讯电脑管家比较哪个更好
  9. 50. Pow(x, n)
  10. AJAX ||JQeury实现方式||原生的JS实现方式(了解)