url scheme(url scheme是什么意思)

:暂无数据 2026-10-02 16:40:01 :2

url scheme(url scheme是什么意思)

大家好,url scheme相信很多的网友都不是很明白,包括url scheme是什么意思也是一样,不过没有关系,接下来就来为大家分享关于url scheme和url scheme是什么意思的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

url scheme是什么意思

就像给服务器资源分配一个 URL,以便我们去访问它一样,我们同样也可以给手机APP分配一个特殊格式的 URL,用来访问这个APP或者这个APP中的某个功能(来实现通信)。APP得有一个标识,好让我们可以定位到它,它就是 URL 的 Scheme 部分。
常用APP的 URL Scheme
| APP | 微信 | 支付宝 | 淘宝 | 微博 | QQ | 知乎 | 短信 |
| URL Scheme | weixin:// | alipay:// | taobao:// | sinaweibo:// | mqq:// | zhihu:// | sms:// |

IOS ,腾讯第三方开发中,创建应用时,平台信息中,填写的URL scheme是什么

URL scheme 是 Apple允许各个不同应用程序之间互相通信的 一个机制。 每个应用都可以设置自己的URL,然后注册到ios系统内,当其它应用访问这个URL时,ios系统底层就会自动把访问这个URL时的action和data抛给你的应用,你的应用可以接收处理这响应的事件。
腾讯让你填写的URL scheme就是你的应用,这样有了你的URL scheme之后,当腾讯处理完他们那边的事情,它就能回调你的应用的URL,然后把详细数据传给你的应用,这样你的应用就可以和腾讯的应用相互通信了。
至于URL scheme的详细学习,请自行百度吧。

小程序的「获取URL Scheme」能力

最近,微信小程序更新了一项新的能力:「获取URL Scheme」,这是一项非常有用的功能,你可以借助他,在微信生态中实现各种有意思的营销方式。

微信提供了一个接口,可以生成如 weixin://dl/business/?t= *TICKET* 的 URL Scheme。你可以在系统自带的浏览器,比如 Safari 中访问这个地址,自动跳转到你自己的微信小程序中。

URL Scheme 的用途最大自然是各种营销用途,比如短信营销。不过,如果我们发散思维,就可以知道,URL Scheme 可以有更多的用途。

URL Scheme 在 iOS 系统应用中是比较多的,不少 iOS 的 Power User 都会借助 URL Scheme 来自定义自己的手机中的一些操作,实现特别的操作。我们可以参考 iOS 的 Power User 的用法,理解微信的 URL Scheme 的用法

如果我们将这些能力迁移到微信生态中,就可以发现,这里我们同样可以实现:

虽然很好,不过 URL Scheme 目前还有一些问题,比如只限于国内非个人主体小程序,对于个人开发者来说就无法使用了。

URL Scheme 的开放,对于微信生态来说,是一个很有力的工具,开发者可以借助与 URL Scheme 来完成自己在微信生态中的推广。在未来,我们可以看到,越来越多的开发者借助于 URL Scheme ,来实现一些很有意思的营销方式。

iOS应用间通信:URL Schemes

URL用于定位资源,譬如网络资源。以下面的URL为例:

根据 RFC1808 标准,其包含如下组成部分:

iOS中,你可以为自己的应用定义URL schemes,供外界调用。URL格式必须符合标准(即能够通过 NSURL 解析)。

总体来说,URL schemes可划分为两类:系统定义&自定义。

有些系统应用天生支持URL schemes,例如电话,邮件,短信,Safari,地图等。

更多关于系统定义的URL schemes的信息,详见官方文档 Apple URL Scheme Reference 。

调用URL scheme其实很简单,分为两步:

注意事项:

打开URL的方法如下:

自定义URL schemes也可以分为两步:

iOS以URL type为单位管理URL schemes。一个type下可以有多个scheme,但一个scheme只对应一个type。注册URL schemes,实际上是注册URL type。

在 Info.plist 中添加键值对 CFBundleURLTypes ,其对应一个数组,每个元素都是一个字典,代表一个type。例如:

一个URL type字典包含如下键值对:

更多关于CFBundleURLTypes的信息,详见Information Property List Key Reference中章节 CFBundleURLTypes 的叙述。

此外,还可以针对scheme定义启动图片。众所周知,app启动时会显示图片。如果app因为响应某个scheme而启动,可以根据scheme定义图片。图片命名格式如下:

更多关于URL scheme启动图片的信息,详见App Programming Guide for iOS中章节 Displaying a Custom Launch Image When a URL is Opened 的叙述。

收到调用请求后,相应的UIApplication代理方法会被调用,所以这里也是处理逻辑的所在:

注意事项:

被调用时,app可能处于下列状态之一:

D.2.2.1 app未运行时被调用

app先启动,再处理请求,但受到下面方法影响:

D.2.2.1 app运行中被调用

app 必定 会处理请求,进入前台(即方法 application:openURL:options: 一定会被调用);

UIApplication方法 canOpenURL: 可以判断当前设备上是否有能够响应特定URL的应用。

于是乎,有人利用这个方法过滤大量scheme,判断设备上安装了哪些应用。为防止滥用,自iOS9,Apple要求这个方法只能检测特定名单内的scheme(当然,系统定义的scheme不在此列),开发者需要通过键值对 LSApplicationQueriesSchemes 在 Info.plist 中定义这个名单。例如:

另外,还要注意:

更多关于LSApplicationQueriesSchemes的信息,详见Information Property List Key Reference中章节 LSApplicationQueriesSchemes 的叙述。

Android 跨应用间调用: URL Scheme

Android中的自定义的 URL Scheme 是一种页面内跳转协议,也可以被称为 URLRouter ,就是通过类似打开网页的方式去通过路由打开一个Activity,而非直接通过显式Intent方式去进行跳转。这样隐式intent的方法跳转好处如下:

上文已经说过, URL Scheme 是就通过类似打开网页的方式去通过路由打开一个Activity,其协议格式和我们打开网页输入的网址类似。

一个完整的完整的URL Scheme协议格式由scheme、host、port、path和query组成,其结构如下所示:

***隐藏网址***

如下是一个自定义协议的URI:

通过上面的路径 Scheme、Host、port、path、query全部包含:

URL Scheme 的使用方法简要言之就是先在manifest中配置能接受Scheme方式启动的activity;当需要调用时,将Scheme协议的URi以Data的形式加入到Intent中,隐式调用该activity。

1). 在AndroidManifest.xml中对《activity 》标签增加《intent-filter》设置Scheme

上面的设置中可以看到,MainActivity包含多个《intent-filter》设置,第一个是正常的启动,也就是在应用列表中启动;第二个是通过 URL Scheme 方式启动,其本身也是隐式Intent调用的一种,不同在于添加了《data》属性,定义了其接受 URL Scheme 协议格式为 urlschemel://auth_activity

这里需要说明下, URL Scheme 协议格式中,组成URI的这些属性在《data 》标签中都是可选的 ,但存在如下的依赖关系:

当我们将intent对象中的Uri参数与intent-filter中的《data》标签指定的URI格式进行对比时,我们只对比intent-filter的《data》标签指定的部分,例如:

需要注意的是,intent-filter的《data》标签在指定path的值时,可以在里面使用通配符*,起到部分匹配的效果。

2). 使用URL启动Activity

当然可以在网页中调用

或者是在JS中调用

3.)如何判断URL Scheme是否有效

有时候需要把一些辅助性的、较为独立的APP在Home Launcher中隐藏起来,只允许一些特定的APP调用。这个时候,我们可以利用 URL Scheme 协议来做到这一点,设置AndroidManifest.xml中对《activity 》标签如下

因为Home Launcher列出的应用图标要求必须有Activity同时满足

上面的配置中有多余的category和data限制存在,所以并不匹配,不会在Home Launcher出现,但是可以使用 URL Scheme 来启动。

这样就可以将一组APP设置一个统一的入口,然后根据实际需要在调用不同子APP,即所谓的 APP业务组件化 , URL Scheme 在其中有着重要的作用,更进一步讨论会在以后的文章中呈现,敬请期待。

参考文献:
***隐藏网址***
***隐藏网址***
***隐藏网址***

iOS内置词典的URL Scheme是什么

1.URL是统一资源定位符对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
2.Scheme 编程语言是一种Lisp方言,诞生于1975年,由 MIT 的 Gerald J. Sussman 和 Guy L. Steele Jr. 完成。它是现代两大Lisp方言之一;另一个方言是Common Lisp。
3.Scheme遵循极简主义哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。
4.URL Scheme的中文意思是【网址计划】。

URL Scheme和Universal link

URL Scheme是苹果为方便app之间互相调用而设计的

设置一个URL Scheme,唯一标识一个app,其他APP能够通过URL scheme拼成类似于URL链接的形式唤起该app,并且拼接的URL链接能够携带一些参数,从而使不同APP之间能够通信或者分享一些数据

如果两个APP都设置了同一个URL scheme,会造成冲突,有一个APP无法被打开;后安装的APP会被打开,也就是最后将URL scheme写入系统中的APP会优先被唤起;

通用链接是通过传统的HTTP链接能够打开APP的技术
通过一个唯一的网址,就可以连接到APP的某一个视图;如果用户没有安装对应的APP则跳转到普通的网页
在webview或者Safari打开一个universal link,如果APP里associated domain里关联了该link,则会跳转至该APP

1.APP第一次启动或APP更新版本后第一次启动
***隐藏网址***
3.APP将apple-app-association注册给系统
4.由任意webview发起跳转的url,如果命中了apple-app-association注册过的通用链接
5.打开App,触发Universal Link delegate
6.没命中,webview继续跳转url

universal link具有唯一性,只能打开一个app;因为注册关联域名的时候apple-app-association文件里有配置bundle identifier,必须和APP的包名一致才能work

iOS 唤起APP之URL Scheme

简单的说,由于苹果选择使用沙盒机制来保障用户的隐私和安全,APP只能访问自己沙盒数据,但同时也阻碍了应用间合理的信息共享。因此苹果提供了一个可以在APP之间跳转的方法: URL Scheme 。如果你的APP需要其他APP访问某些功能或者数据,那么你需要在你的APP定义一个相应的 URL Scheme 。当别的APP使用 URL Scheme 进行访问时,系统会根据 URL Scheme 进行匹配,从而来拉起对应的APP。

如果想要更清晰的认识 URL Scheme 电话,我们需要了解下面几个概念:

这样一对比就容易很明白的理解出了URL Scheme的真正含义,它是为了在iOS系统中定位对应的App然后执行对应的操作,复杂的URL Scheme还可以传递参数。

所以说了那么多,有一种跳转方式可以既满足跳转的动态需求,也可以灵活的传递参数。这种方式就是使用URL Scheme进行动态跳转。这也是我非常推荐的一种使用方式。并且在一些组件化开发的尝试中,这种跳转方式也带来了很多便利。

第三方应用可以通过①给自己发送 URL Scheme 请求来证明没有被劫持,如果没有收到自己的 URL Scheme,就可以及时给用户发送提醒;②利用 MobileCoreServices 服务中的 applicationsAvailableForHandlingURLScheme() 来查看所有注册了该 URL Schemes 的应用和处理顺序,从而检测自己、或者别人的 URL Scheme 是否被劫持。

注册自定义URL Scheme有两种方式

这两种注册方式本质上其实是一样的只是位置不同。

我们需要在APPdelegate中实现相应的代理方法:

iOS 9.0以下
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
iOS 9.0以上
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

下面我们通过Safari来验证:

在应用中调用URL Scheme需要是以下方法:

iOS10.0以下使用该方法:
- (BOOL)openURL:(NSURL*)url NS_DEPRECATED_IOS(2_0, 10_0, "Please use openURL:options:completionHandler: instead") NS_EXTENSION_UNAVAILABLE_IOS("");
iOS10.0以上使用该方法:
- (void)openURL:(NSURL*)url options:(NSDictionary《UIApplicationOpenExternalURLOptionsKey, id》 *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");
还有一个方法可以判断对应URL Scheme是否存在一般和上述方法一起使用:
- (BOOL)canOpenURL:(NSURL *)url NS_AVAILABLE_IOS(3_0);

下面来验证一下:

关于url scheme和url scheme是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

url scheme(url scheme是什么意思)

本文编辑:admin

更多文章:


威斯布鲁克交易最新消息(火箭正式完成了什么交易)

威斯布鲁克交易最新消息(火箭正式完成了什么交易)

各位老铁们好,相信很多人对威斯布鲁克交易最新消息都不是特别的了解,因此呢,今天就来为大家分享下关于威斯布鲁克交易最新消息以及火箭正式完成了什么交易的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月23日 05:30

csvwrite函数(matlab保存csv遇到的问题)

csvwrite函数(matlab保存csv遇到的问题)

“csvwrite函数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看csvwrite函数(matlab保存csv遇到的问题)!

2026年10月23日 04:30

jquery动态添加表格行(如何通过jquery动态给表格添加一行)

jquery动态添加表格行(如何通过jquery动态给表格添加一行)

其实jquery动态添加表格行的问题并不复杂,但是又很多的朋友都不太了解如何通过jquery动态给表格添加一行,因此呢,今天小编就来为大家分享jquery动态添加表格行的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月23日 00:30

cmake命令行参数(CMake (三)cmake 在工程中的用法)

cmake命令行参数(CMake (三)cmake 在工程中的用法)

本篇文章给大家谈谈cmake命令行参数,以及CMake (三)cmake 在工程中的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月23日 00:00

游戏代码翻译器下载(求游戏实时翻译软件)

游戏代码翻译器下载(求游戏实时翻译软件)

“游戏代码翻译器下载”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看游戏代码翻译器下载(求游戏实时翻译软件)!

2026年10月22日 23:50

linux数据备份命令(Linux系统下常用的数据备份方法有哪些)

linux数据备份命令(Linux系统下常用的数据备份方法有哪些)

大家好,今天小编来为大家解答以下的问题,关于linux数据备份命令,Linux系统下常用的数据备份方法有哪些这个很多人还不知道,现在让我们一起来看看吧!

2026年10月22日 23:20

小程序开发平台开源(有哪些快速开发平台或者零代码开发平台)

小程序开发平台开源(有哪些快速开发平台或者零代码开发平台)

大家好,如果您还对小程序开发平台开源不太了解,没有关系,今天就由本站为大家分享小程序开发平台开源的知识,包括有哪些快速开发平台或者零代码开发平台的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月22日 23:10

executequery返回值(ExecuteQuery(sql)的返回值)

executequery返回值(ExecuteQuery(sql)的返回值)

大家好,executequery返回值相信很多的网友都不是很明白,包括ExecuteQuery(sql)的返回值也是一样,不过没有关系,接下来就来为大家分享关于executequery返回值和ExecuteQuery(sql)的返回值的一些

2026年10月22日 23:00

web个性布局模板(FrontPage简明教程:网页布局)

web个性布局模板(FrontPage简明教程:网页布局)

各位老铁们,大家好,今天由我来为大家分享web个性布局模板,以及FrontPage简明教程:网页布局的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月22日 22:50

舍曲林吃了一周越来越严重(我母亲77岁,服用舍曲林一周,开始半片,4天后改为1片,第三天开始失眠,第四天出现乏力、食欲下降,)

舍曲林吃了一周越来越严重(我母亲77岁,服用舍曲林一周,开始半片,4天后改为1片,第三天开始失眠,第四天出现乏力、食欲下降,)

本篇文章给大家谈谈舍曲林吃了一周越来越严重,以及我母亲77岁,服用舍曲林一周,开始半片,4天后改为1片,第三天开始失眠,第四天出现乏力、食欲下降,对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所

2026年10月22日 21:00

最近更新

如何防止新站SEO降权
2026-10-23 05:26:17 浏览:0
热门文章

wait for you杨和苏(大家听下(wait for you)这首英文歌的开头那段音乐)
2026-06-13 16:20:04 浏览:26
刷关键字排名怎么操作最有效?
2026-09-14 20:02:13 浏览:20
标签列表