IOS应用程序的跳转和URL Scheme的使用

第一:什么是URL Scheme

与Android的URL Scheme类似,是为方便app之间互相调用而设计的。你可以通过一个类似URL的链接,通过系统的OpenURl来打开该app,并可以传递一些参数。每个URL必须能唯一标识一个APP,如果你设置的URL与别的APP的URL冲突,此时,你的APP不一定会被调用起来,原因是当APP在安装的时候就已经在系统里面注册了此APP的URL Scheme,如果你的一致但是是后安装的,那么系统不会调用你的APP,因为你的APP设置的URL scheme被覆盖了。

当然系统的APP的URL Scheme是优先级高的,不用想着能覆盖系统APP的URL Scheme的注册调用。

第二:URL Scheme有什么作用:

大家知道在IOS系统里面APP之间是相互隔离的,不像Android,每个组件都可以作为一个独立的功能被其他APP调用,但是,IOS系统里面也需要完成类似于三方功能如支付、搜索跳转、导航等等跨APP的功能,怎么实现呢,苹果就使用了URL Scheme来实现了这个功能。通过各个APP设计的符合苹果的统一规范的URL Scheme,系统就会自动去调用相关的APP来完成你的请求。

比如:我们的APP需要使用支付宝的三方支付功能、我的APP需要使用微信分享好的文章,那么此时就可以通过URL Scheme来传递这些数据到支付宝APP或者微信APP,系统会通过这些APP的URL Scheme来调起这些APP,完成你所需要做的跨APP的功能。

第三:怎么使用呢?

假如有2个应用程序A和B,在B程序的 Info.plist 添加一个 URL types 节点,如图:

之后在A程序调用

/**

*  打开B程序界面

*/

- (IBAction)openSina

{

// 每个程序都可以拥有一个自己唯一的URL

// URL组成: 协议头://主机/路径

// http://

// file://

// ftp://

// ...

// 1.获取application对象

UIApplication *app = [UIApplication sharedApplication];

// 2.创建需要打开的应用程序的URL

// 在应用程序跳转中, 只要有协议头即可, 路径可有可无

NSURL *url = [NSURL URLWithString:@"sina://login?myScheme=wangyi"];

// 3.利用application打开URL

if ([app canOpenURL:url]) {

// 3.1判断是否可以打开

[app openURL:url];

}else

{

// 3.2打开App STORE下载

NSLog(@"根据App id打开App STORE");

}

}

就能成功跳转到指定url的应用程序了.

之后还会调用A程序的appdeleage方法

/**

*  当被其他应用程序通过URL打开时就会调用

*  @param application 当前的应用程序

*  @param url         打开当前程序的URL

*   @return 是否成功处理

*/

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

/**

*  当被其他应用程序通过URL打开时就会调用(新方法)

*

*  @param application       当前的应用程序

*  @param url               打开当前程序的URL

*  @param sourceApplication 打开当前程序的Bundle identifier

*  @param annotation

*  @return 是否成功处理

*/

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

时间: 2024-11-06 23:57:11

IOS应用程序的跳转和URL Scheme的使用的相关文章

Xcode6.4注册URL Scheme步骤详解

URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的.我们可以通过系统的OpenURL来打开该app,并可以传递一些参数. 例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是你的手机装了支付宝.如果你没有装支付宝,应该显示的是支付宝下载界面,点击会跳到AppStore的支付宝下载

URL Scheme的作用是应用间调用

URL Scheme的作用 我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的.我们可以通过系统的OpenURL来打开该app,并可以传递一些参数. 例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是你的手机装了支付宝.如果你没有装支付宝,应该显示的是支付宝下载界面,点击会跳到AppStore的支付宝下载

iOS程序间使用URL scheme通信

由于iOS的沙盒机制,程序之间通信受到限制,还好iOS可以很方便的注册自己程序的 URL scheme,因此可以通过打开特定的URL scheme来实现程序间通信传递参数. 1.新建A程序,并注册 URL scheme: 在程序的 Info.plist 添加一个 URL types 节点就可以了.注意结构体顺序不要搞乱 ,因为我之前结构体顺序不对,一直跳转不成功. 这样就注册好了scheme. 2.新建B程序,然后在B中打开A. 我们可以看到通过点击这个按钮之后,就跳转到A去了.(同理:当你的程

IOS应用程序间相互跳转 与 传值

阅读本文之前建议参考:<Communicating with Other App程序间通信[翻译]> 在IOS中,实现在app1中打开app2,方法如下: 1,在app2中注册一个URL Schemes 注册的方法很简单,在XXX-info.plist文件中新增一个URL types数组元素,取一个名字,比如"tekuba_net".或者在工程的-TARGETS-Info,中找到URL Types添加一个URL Schemes,名为"tekuba_net"

iOS应用程序间共享数据(转)

我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来分享数据,不过还是有些方法可以实现,为了方便说明,这里同时创建了两个工程Example1和Example2,实现这两个app之间的信息共享,Example1负责写数据,Example2负责读数据,具体的demo代码可以到这里获取 UIPasteboard 剪贴板是应用程序之间传递数据的简单方式,建议

Chisel辅助iOS 应用程序调试,MusicApp模仿酷狗4.0 UI框架

本文转载至 http://www.cocoachina.com/ios/20140825/9446.html Chisel Chisel集合了大量的LLDB 命令来辅助iOS 应用程序调试,并支持添加本地和自定义的命令.以下是其中所包含的一些命令,并对其适用于iOS还是OS X进行了区分: M13ProgressSuite 该项目包含了多种不同的风格的进程指示图,比如普通圆环形.分段圆形加载.圆形饼图加载以及条形加载等等,比如其中UINavigationBar的进程动画非常像苹果的Messag

iOS之程序间通讯

程序间通讯 1 设置程序标识,名字自己起, 2 在想要跳转的地儿 加入这行代码就可以 UIApplication sharedApplication] openURL:[NSURL URLWithString:@"ProductTwo:"]]; 例如:one工程程序中:(调用openURL) // // ViewController.m // 程序间通讯OneProduct // // Created by dllo on 16/3/24. // Copyright © 2016年 H

iOS App 自定义 URL Scheme 设计(转自COCOACHINA)

在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个程序. 例如在 iPad 上浏览网页,并且 iPad 已经安装了 淘宝 HD,那么就打开下面这个链接就会在淘宝 HD 中查看这个商品的详细信息,也可以方便的使用淘宝 HD 进行购买.收藏等操作. 在淘宝 HD 中查看商品“2012西藏卓明谷方舟登舰卡(船票)” 当然,如果你在 Mac OS X 中打

发布IOS应用程序到苹果APP STORE完整流程

参考:http://blog.csdn.net/mad1989/article/details/8167529(xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)) http://www.ttlsa.com/dev/how-to-publish-iosapp-to-appstore/ (如何发布IOS应用程序到苹果APP STORE) 开发环境:xcode5.1.1 iphonesdk:7.1 开发机器:iMac 真机部署测试:apple个人开发者ID 向导: 必备ID