iOS开发过程中,我们经常碰到应用间跳转的情景:

 1、使用第三方用户登录,跳转到需授权的App或跳转到分享app的对应页面

*需要用户授权,还需要"返回到调用的程序,同时返回授权的用户名、密码";

2、应用程序推广,跳转到另一个应用程序(本机已经安装);

3、跳转到iTunes并显示应用程序下载页面(本机没有安装);

4、第三方支付,跳转到第三方支付App,如支付宝支付,微信支付;

5、使用系统内置程序,如跳转到打电话、发短信、发邮件、Safari等

应用间跳转原理:若应用A跳转到应用B,则给A、B自身自定义URL Schemes(自定义的协议头)后,通过在A中处理B的URL Schemes,就可以在A中启动B了。

注:iOS9之后,应用间跳转需要在Info.plsit中设置白名单。以 ‘LSApplicationQueriesSchemes’为Key值,对应数组value中添加白名单应用的URL Schemes即可。若未设置白名单,会报错,值得我们注意:

-canOpenURL: failed for URL: "应用B的URL Schemes://" - error: "This app is not allowed to query for scheme 应用B"

以下例子均以系统高于iOS9为例。

例一:应用A跳转到应用B

AppA自定义URL Schemes,且在应用A的Info.plist中设置白名单,添加应用B的URL Schemes

跳转代码:

例二:应用A跳转到应用B指定界面

A中跳转响应事件:

应用B捕捉到被其他应用打开:

系统版本小于iOS9

系统版本大于iOS9

例三:应用B反跳转回应用A

1、 步骤分析:从B再跳转回A,那么在A跳转到B的时候,还应将应用A的URL Schemes传递过来。这样我们才能指定返回哪个应用程序(iOS9之后,该应用一定要添加到白名单内)

指定一个传递URL的规则:协议头://应用B的URL Schemes?应用A的URL Schemes。即:AppB://One?AppA。

说明:

AppB是跳转过来的应用App-B的URL Schemes;

One是用来区别跳转页面的标识;

? 是分割符;

AppA是跳转回的应用App-A的URL Schemes

2、我们根据传递来的数据,进行反跳回去。跳转页面设置一个属性保存传递的字符串

@property (nonatomic, copy) NSString *urlString;

AppA中的修改:

AppB中的修改:

1.修改AppDelegate代理方法:

2.分别修改OneVc和TwoVc控制器

参考:iOS应用间跳转

iOS开发——应用间跳转的更多相关文章

  1. IOS 在控制器间跳转实现过渡动画

    已经掌握了CALayer下的CATransition动画在同一个控制器下实现,但是在不同控制器间跳转又该如何实现呢? MyViewController *myVC = [[MyViewControll ...

  2. iOS开发,应用间的跳转

    预习:URL由两部分组成-- 1.scheme:协议头(http://  ftp:// 等等) 2.path:路径(URL中path可以没有) 一.简单实现跳转到指定APP(也就是说跳转到的APP必须 ...

  3. iOS 总结APP间跳转的常用以及非常用需求 APP跳转Safari APP跳转APP

    需求驱动技术,有了新的需求,旧技术无法实现时,就会有新的技术出现. 一般的APP跳转需求有以下几种: 1.  从自己的APP跳转到别人的APP. 2. 从自己的APP跳转系统APP. 3. 让别人的A ...

  4. iOS开发之如何跳到系统设置里的各种设置界面

    跳到更多设置界面 除了跳到WiFi设置界面,能不能跳到其他的设置界面呢?比如:定位服务.FaceTime.音乐等等.都是可以的,一起来看看如何实现的! 定位服务 定位服务有很多APP都有,如果用户关闭 ...

  5. iOS开发 点击跳转到App Store 或者 点击按钮去评价

    //跳转到应用页面 NSString *str = [NSString stringWithFormat:@"http://itunes.apple.com/us/app/id%d" ...

  6. 从小白开始学习iOS开发

    从事iOS开发不经意间,已经两年过去了,记得当初看到OC是,我根本就不知道那些个东西是什么?从开始学习开机,到一个个英文开始,为了能找到工作,愣是耐下心去坚持看下去. 现在回想起来,很是庆幸我没有放弃 ...

  7. 【转】iOS开发--一步步教你彻底学会『iOS应用间相互跳转』

    1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景.这就需要我们掌握iOS应用程序之间的相互跳转知识. 下面来看看我们在开发过程中遇到的应用 ...

  8. iOS开发-二维码扫描和应用跳转

    iOS开发-二维码扫描和应用跳转   序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...

  9. iOS开发拓展篇—应用之间的跳转和数据传递

    iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够 ...

随机推荐

  1. JMeter - 如何在多个测试环境中运行多个线程组

    概述: 作为性能测试的一部分,我不得不为我们的应用程序提供各种用例/业务工作流程的性能测试脚本.当我设计我的性能测试脚本时,我将确保我有本文中提到的可重用测试脚本. JMeter - 如何创建可重用和 ...

  2. (转)Xargs用法详解

    Xargs用法详解 原文:http://czmmiao.iteye.com/blog/1949225 简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以 ...

  3. 还不知道如何使用 IDEA ?教你三招快速掌握 IDEA

    前言 IntelliJ IDEA 是一个非常强大的 IDE,拥有许多功能.在 IDEA 中大部分功能都可以用快捷键去完成,如果掌握了大部分快捷键,可以只使用键盘开发了. ps: 最近正在练习快捷键,准 ...

  4. jdbc操作数据库的步骤

    package com.jckb; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...

  5. 《C#高效编程》读书笔记03-推荐使用is或as操作符而不是强制类型转换

    在日常编码中,很多时候都要编写接受object作为参数的方法,接下来是将这些object转型成特定类型,要么类,要么接口.这时我们有两种选择,使用as操作符,或者使用强制类型转换. 正确的做法是,尽可 ...

  6. 发布MVC网站的时候出现缺少WebHost等程序集问题的解决办法

    将一下几个dll 拷贝到bin文件夹下就行 链接:https://pan.baidu.com/s/17xhTdakzM_SQmOjJdZvviw 密码:c976

  7. enable orgmode latex preview to support retina on mac

    Table of Contents 1. enable orgmode latex preview to support retina on mac 1.1. get the proper versi ...

  8. OpenStack Ocata Telemetry 数据收集服务

    1 安装配置计算服务 在所有计算节点上: 1.1 安装配置组件 安装包: # yum install -y openstack-ceilometer-compute 编辑配置文件/etc/ceilom ...

  9. A promise tomorrow is worth a lot less than trying today.

    A promise tomorrow is worth a lot less than trying today.明日的承诺远不及今日的行动.

  10. 使用FusionCharts创建可更新数据的JavaScript图表

    先创建一个简单的图表,然后改变它的数据(请参见下面的代码).图表最初据显示8月份的销售数据,当用户点击按钮时改为显示9月份的销售数据.每个月都有单独的XML文件,代码如下: <html> ...