iOS APP打开其他应用
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打开其他应用的更多相关文章
- ios app - 打开系统设置URL
ios --- 调用系统"设置"里的功能(转) 安装后第一次运行软件时,系统会弹出提示用户是否允许软件获取当前位置,如果用户不允许的话,之后运行时系统不会在弹出提示设置,这点很不方 ...
- iOS APP中第三方APP调用自己的APP,打开文件
根据需求需要在项目中要打开word.pdf.excel等文件,在info.plist文件中添加 <key>CFBundleDocumentTypes</key> <arr ...
- iOS 从app跳转到Safari、从app打开电话呼叫
1.从app跳转到Safari NSString* strIdentifier = @"http://www.ybyb.com"; BOOL isExsit = [[UIAppli ...
- iOS App上架流程(2016详细版)
iOS App上架流程(2016详细版) 原文地址:http://www.jianshu.com/p/b1b77d804254 感谢大神整理的这么详细 一.前言: 作为一名iOSer,把开发出来的Ap ...
- iOS app 企业内部发布及HTTPS服务器配置
转自: http://www.cnblogs.com/cocoajin/p/4082488.html iOS企业内部发布及HTTPS服务器配置 一:所需的条件 1. 苹果开发者证书,企业版 299$ ...
- iOS app 程序启动原理
iOS app 程序启动原理 Info.plist: 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...
- iOS App 研发的最后冲刺:内测与部署
当开发者历经磨难.披荆斩棘,完成了一个iOS项目后,最后的临门一脚就是应用的内测.部署.那么,在这最后的射门动作中,都有哪些地方需要开发者注意?有哪些方式能够更好地帮助我们进行iOS应用的发布部署? ...
- ios app 实现热更新(无需发新版本实现app添加新功能)
目前能够实现热更新的方法,总结起来有以下三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的iOS应用 ios app可以在运行时从服务器拉取最新的js文件到 ...
- ios app的真机调试与发布配置
1.打开应用程序—>[钥匙串访问]—>[证书助理]—>[从证书办法机构请求证书] 2.在[用户电子邮件地址]填入apple账户用的邮箱,选择[存储到磁盘],点击[继续],会在 ...
随机推荐
- 请求超时VUE axios重新再次请求
//在main.js设置全局的请求次数,请求的间隙 axios.defaults.retry = 4; axios.defaults.retryDelay = 1000; axios.intercep ...
- cartographer 点云同步处理
1.点云同步处理的类 RangeDataCollator class RangeDataCollator { public: explicit RangeDataCollator( const st ...
- 让你爱不释手的 Python 模块
 一. logzero 在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为.我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些 ...
- Eclipse 搭建 Strust2开发环境
一.创建一个动态Web项目 ♦ 注意 :一定要勾选Generate Web.xml deployment descriptor 选项,这个将在Eclipse为你创建一个动态web项目. 二.导入相关 ...
- 【算法】【python实现】二叉搜索树插入、删除、查找
二叉搜索树 定义:如果一颗二叉树的每个节点对应一个关键码值,且关键码值的组织是有顺序的,例如左子节点值小于父节点值,父节点值小于右子节点值,则这棵二叉树是一棵二叉搜索树. 类(TreeNode):定义 ...
- Python 爬虫 58同城
目标站点需求分析 获取各类产品的名字,地区,时间,价格 涉及的库 BeautifulSoup,requests,time,pymongo 获取各大类产品的链接 获取单页源码 解析单页源码 保存到文件中 ...
- Mysql-innoDB存储引擎(事物,锁,MVCC)
innoDB的特性: 从图中由上至下红色框中的信息是:基于主键的聚集索引 ,数据缓存,外键支持(逻辑上建立外键),行级别锁,MVCC多版本控制,事务支持.这些也是InnoDB最重要的特性. 事务: 数 ...
- hdu4352 数位dp+状态压缩+一个tip
按照nlogn求lis的方法,把lis的状态压缩了,每次新加一个数就把它右边第一个数的位置置为0,然后把这个数加进去 一个需要注意的地方,如果前面都是0,那么状态s中代表0的位置不可以是1,因为这种情 ...
- Java Web环境搭建
——————————JavaWeb环境搭建 先下载JDK, Tomcat 7.0 安装JDK后,配置环境变量,此处可参考博客: https://www.cnblogs.com/smyhvae/p/37 ...
- Docker 学习1 容器技术基础入门
一.虚拟化 1.主机级别虚拟化(两种) a.类型一虚拟化:在硬件上直接安装hyper-ver,然后再安装虚拟机 1).操作系统就两棵树:进程树,文件系统树. 2).一个内核只能有一个root b.类型 ...