ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

URL Scheme的作用?能拿来做什么?

2022-02-21 18:32:30  阅读:205  来源: 互联网

标签:Schemes URL scheme APP url 拿来 Scheme


一、什么是url scheme?

URL scheme是系统提供的一种机制,它可以由应用程序注册,然后其他程序通过url scheme来调用该应用程序。

它分为两部分:一部分是系统默认的url scheme,另外一部分是应用程序自己注册的url scheme。

例如:mailto:这种就属于系统默认的一种机制。访问一个mailto的url链接,可以直接调用本机的邮件客户端,如:

目前它已经被windows、OS X、gnome、ios以及Android支持。

 

典型工作机制示意图:

 

二、URL schem能拿来做什么?

通过在程序中嵌入一个url,然后调用其他应用程序来完成外部程序的功能调用。

例如上述例子,我想发邮件,就可以在内部嵌入一个mailto的url,当用户需要发送邮件的时候,他只需要点击当前窗口下的mailto链接,然后直接跳转到邮件客户端,并可以自动填写好一些内容。

移动端可能应用就更加典型了。

例如,我想一键发送当前APP中的内容到微信朋友圈?没关系,只需要嵌入一条微信的相关url scheme就行了,用户点击这个按钮,就可以完成一键发朋友圈,方便快捷,提高用户体验。

亦或者,可以在APP调用微信的扫一扫,那么就可以白嫖一下微信快速的扫一扫功能了。

我们都知道苹果手机中的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。如图所示:

2.添加URL Schemes

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

3.设置URL Schemes

设置URL Schemes为iOSDevTip

4.设置URL Identifier

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

添加成功启动提示

为了方便测试,我们在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://

果然成功打开:

也可以在地址栏中输入: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");

}

打开注册iOSDevTip的APP格式为: URL Scheme://URL identifier,直接调用URL Scheme也可打开程序, URL identifier是可选的。


 

标签:Schemes,URL,scheme,APP,url,拿来,Scheme
来源: https://blog.csdn.net/u013712343/article/details/123052835

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有