url scheme 打开其它app 应用

转载 2015年11月17日 16:34:54

URL Scheme的作用

我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。

例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是你的手机装了支付宝。如果你没有装支付宝,应该显示的是支付宝下载界面,点击会跳到AppStore的支付宝下载界面。

URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的URL Scheme冲突时,你的APP不一定会被启动起来。因为当你的APP在安装的时候,系统里面已经注册了你的URL Scheme。

一般情况下,是会调用先安装的app。但是iOS的系统app的URL Scheme肯定是最高的。所以我们定义URL Scheme的时候,尽量避开系统app已经定义过的URL Scheme。

注册URL Scheme

1.在info.plist里添加URL types

每一个项目里面都会有一个info.plist配置文件。找到info.plist,右键选择Add Row,然后选择URL types。如图所示:

url1

2.添加URL Schemes

添加完URL types,点击展开。右键选择Add Row,添加URL Schemes:

url2

3.设置URL Schemes

设置URL Schemes为iOSDevTip

url3

4.设置URL Identifier

URL Identifier是自定义的 URL scheme 的名字,一般采用反转域名的方法保证该名字的唯一性,比如 com.iOSStrongDemo.www

url4

添加成功启动提示

为了方便测试,我们在AppDelegate里面添加一个UIAlertView,当app被成功打开时,会提出提示:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url
{
    // 接受传过来的参数
    NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"打开啦"
                                           message:text
                                          delegate:nil
                                 cancelButtonTitle:@"OK"
                                 otherButtonTitles:nil];
    [alertView show];
    return YES;
}

Safari启动自定义的URL Schemes APP

既然已经配置好URL Schemes,那么我们可以来款速测试一下,我们设置的URL Schemes是否有效。打开Safari,在地址栏里输入:iOSDevTip://

url6

果然成功打开:

url5

也可以在地址栏中输入:iOSDevTip://com.iOSStrongDemo.www。也是可以打开注册了URL Schemes的APP的。

通过另一个APP启动注册了URL Schemes的APP

 NSString *url = @"iOSDevTip://";
//    NSString *url = @"iOSDevTip://com.iOSStrongDemo.www";
if ([[UIApplication sharedApplication]
     canOpenURL:[NSURL URLWithString:url]])
{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
else
{
    NSLog(@"can not open URL scheme iOSDevTip");
}

Scheme详解( web页面判断是否安装某app,并判断是否打开该应用)

参照页面: demo实例:http://blog.csdn.net/qq_30740239/article/details/51969660 Scheme详解:http://blog.csdn.n...
  • u013252110
  • u013252110
  • 2017年02月24日 15:11
  • 2791

url scheme完全指南与app之间的调用(调用与被调用)

http://www.cocoachina.com/ios/20140522/8514.html http://www.cocoachina.com/ios/20140522/8514.html ...
  • u012963325
  • u012963325
  • 2016年05月11日 11:51
  • 659

Android自定义URL使用Scheme方式唤起Activity或App

原文地址:http://blog.csdn.net/xc765926174/article/details/51397847 最近由于工作需要,使用Scheme方式自定义URL来跨应用间调用,踩...
  • kongxiuqi
  • kongxiuqi
  • 2016年12月23日 08:29
  • 851

Android浏览器打开本地app前端同学的两种配置方式Url scheme和Android intent

首先说一下,在我和前端同学调试时,使用第一种方式配置时,不能够启动本地app,第二种方式能够启动app。可能是手机不支持第一种方式启动,具体原因没找到。这部分是Android小伙伴要做的事情 ---...
  • qq_23089525
  • qq_23089525
  • 2016年10月09日 18:18
  • 4058

Android自定义URL使用Scheme方式唤起Activity或App

Android自定义URL使用Scheme方式唤起Activity或App
  • xc765926174
  • xc765926174
  • 2016年05月13日 20:12
  • 18460

iOS 如何判断ios设备中是否安装了某款应用并用URL Scheme跳转

第1步:.想要检测是否安装的话,首先需要知道这款应用的URL Schemes,方法如下 获取一个 app 的 URL Scheme 的方法: 上这个网站  URL Schemes  查...
  • sunboygpz
  • sunboygpz
  • 2016年08月30日 16:43
  • 918

利用URL Scheme打开APP并传递数据

利用外部链接打开APP并传递一些附带信息是现在很多APP都有的功能,我在这把这部分的知识记录一下。 1、什么是URL Scheme? android中的scheme是一种页面内跳转协议,是一种非常...
  • u013517637
  • u013517637
  • 2017年02月16日 09:59
  • 2708

[Phonegap+Sencha Touch] 移动开发61 使用 URL Schemes实现一个App启动另一个App的功能

一个App可以启动同一设备上的其他App,可以方便和提高用户体验。URL Schemes是一种机制,提供了一个App启动或恢复另一个App的能力。但URL Schemes真正强大的是用它来传递数据到另...
  • lovelyelfpop
  • lovelyelfpop
  • 2015年09月11日 10:23
  • 1669

Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数

http://blog.csdn.net/jackron2014/article/details/51085446 http://blog.csdn.net/jackron2014/articl...
  • u011904605
  • u011904605
  • 2016年12月06日 02:36
  • 1001

iOS 获取安装应用程序列表和所有 url scheme

由于苹果的限制,在未越狱的 iOS 设备中只能通过私有 api 来获取安装应用列表和所有的 url scheme,在 ios 中可以用获取到的 scheme 来打开对应 app ```objecti...
  • lsjustin
  • lsjustin
  • 2015年12月16日 18:51
  • 2345
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:url scheme 打开其它app 应用
举报原因:
原因补充:

(最多只允许输入30个字)