1、限于iOS的沙盒机制,一般的app都只在沙盒内操作运行,针对app之间的通讯苹果还是给出了一些解决方案的。

最常见的场景就是在一个APP中打开另一个APP。

核心就是一个API,通过制定一个一个URL,打开一个app

            [[UIApplication sharedApplication] openURL:url];

2、不过在这之前,我们还需要做一些配置。我们需要在info.plist里配置需要打开的app的URL scheme,一些常用的app scheme自行百度。

    <key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
<string>twitter</string>
</array>

在打开URL的时候要先判断URL是否有效。然后才能做跳转操作

写一个跳转的判断方法。

- (void)checkWhetherHasInstalledAppWithUrlSchemes:(NSString *)urlSchemes {
NSURL *url = [NSURL URLWithString:urlSchemes];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
NSLog(@"%@ 有效" ,urlSchemes);
[[UIApplication sharedApplication] openURL:url];
}else {
NSLog(@"%@ 无效" ,urlSchemes);
}
}

3、如果想要让其他APP能跳转到自己的应用可以在info.plist 里设置一个或多个 urlTypes

	<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>demos</string>
</array>
</dict>
</array>

然后在AppDelegate里做个可以跳转的权限配置(iOS 9 以后)

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
NSLog(@"func: %s url:%@ ",__func__,[url absoluteString]);
return YES;
}

验证的话,跑真机,只需要在 safari里输入 demos://。按照提示就可以跳转了。

iOS APP打开其他应用的更多相关文章

  1. ios app - 打开系统设置URL

    ios --- 调用系统"设置"里的功能(转) 安装后第一次运行软件时,系统会弹出提示用户是否允许软件获取当前位置,如果用户不允许的话,之后运行时系统不会在弹出提示设置,这点很不方 ...

  2. iOS APP中第三方APP调用自己的APP,打开文件

    根据需求需要在项目中要打开word.pdf.excel等文件,在info.plist文件中添加 <key>CFBundleDocumentTypes</key> <arr ...

  3. iOS 从app跳转到Safari、从app打开电话呼叫

    1.从app跳转到Safari NSString* strIdentifier = @"http://www.ybyb.com"; BOOL isExsit = [[UIAppli ...

  4. iOS App上架流程(2016详细版)

    iOS App上架流程(2016详细版) 原文地址:http://www.jianshu.com/p/b1b77d804254 感谢大神整理的这么详细 一.前言: 作为一名iOSer,把开发出来的Ap ...

  5. iOS app 企业内部发布及HTTPS服务器配置

    转自: http://www.cnblogs.com/cocoajin/p/4082488.html iOS企业内部发布及HTTPS服务器配置 一:所需的条件 1. 苹果开发者证书,企业版 299$ ...

  6. iOS app 程序启动原理

    iOS app 程序启动原理 Info.plist: 常见设置     建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...

  7. iOS App 研发的最后冲刺:内测与部署

    当开发者历经磨难.披荆斩棘,完成了一个iOS项目后,最后的临门一脚就是应用的内测.部署.那么,在这最后的射门动作中,都有哪些地方需要开发者注意?有哪些方式能够更好地帮助我们进行iOS应用的发布部署? ...

  8. ios app 实现热更新(无需发新版本实现app添加新功能)

    目前能够实现热更新的方法,总结起来有以下三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的iOS应用 ios app可以在运行时从服务器拉取最新的js文件到 ...

  9. ios app的真机调试与发布配置

    1.打开应用程序—>[钥匙串访问]—>[证书助理]—>[从证书办法机构请求证书]     2.在[用户电子邮件地址]填入apple账户用的邮箱,选择[存储到磁盘],点击[继续],会在 ...

随机推荐

  1. windows bat 脚本(一)切换当前目录

    一.切换当前目录 现在桌面新建一个文件, 然后打开输入 cmd /k "cd /d D:\file"    如下图点击“另存为”,保存类型选择 “所有文件” 然后会在保存路径下发现 ...

  2. centos7环境下apache2.2.34的编译安装

    .获取apache2..34的源码包 http://archive.apache.org/dist/httpd/httpd-2.2.34.tar.gz .获取apache的编译参数 apache的编译 ...

  3. centos7.6环境下编译安装tengine-2.2.2的编译安装

    centos7.6环境下编译安装tengine-2.2.2的编译安装 .获取tengine2..2的源码包 http://tengine.taobao.org/download/tengine-2.2 ...

  4. python学习第20天

    python中的继承 单继承 多继承

  5. IIS配置页面重写(配合插件url-rewrite2去除页面后缀名)

    本来一直想了解浏览器地址栏中url后缀名如何去除,今天正好抽空折腾一下. 下面参考一位博友文章(出处见文章末尾),基于windows平台(windows7)详细介绍. 1. URL重写组件url-re ...

  6. 1、在Centos上安装Grafana

    1.如果你想将老版本的Grafana升级为新版本的Grafana,可以阅读链接中的文档指南: http://docs.grafana.org/installation/upgrading/ 2.使用y ...

  7. Three teachers who make differences in my life

    人生路漫漫,从小到大,经历过九年义务教育的我们也受到过很多老师的熏陶,而已经进入大学的我也会回想起那些给我带来别样意义的老师们. 亲爱的老李-老李是我初中的班主任,也是我的历史老师.依稀记得上他的课会 ...

  8. fire workflow总结

    一.Fire WorkFlow核心1.IPersistenceService存储服务.Fire Workflow 缺省情况下使用hibernate 进行数据库存取.如果你的系统不是使用hibernat ...

  9. mysql查看索引与锁

    http://www.cnblogs.com/cocos/archive/2011/05/06/2039428.html Mysql乐观锁与悲观锁 http://www.cnblogs.com/esi ...

  10. python之使用 wkhtmltopdf 和 pdfkit 批量加载html生成pdf,适用于博客备份和官网文档打包

    0. 1.参考 Python 爬虫:把廖雪峰教程转换成 PDF 电子书 https://github.com/lzjun567/crawler_html2pdf wkhtmltopdf 就是一个非常好 ...