自定义URL Scheme启动应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义URL Scheme启动应用相关的知识,希望对你有一定的参考价值。

参考技术A 在使用手机时,经常会出现一种场景,当点击某个链接时,会启动已经安装的某个应用来完成接下来的流程。比如当点击网页中一个淘宝的购物链接时,如果手机安装了淘宝客户端,便会导致客户端被唤醒。

ios中可以通过自定义URL Scheme机制来实现这种跳转,从而带来更好的用户体验。

URL Scheme跳转机制非常简单,只需要修改info.plist增加一个键值即可。

按图中的方式创建URL Scheme,在属性字典中添加了一个URL types键值对,设置内容可以参考图中的设置方式。现在以xml文件方式打开info.plist文件,可以看出对应的信息如下:

完成上述操作后,在模拟器或真机上启动应用,然后打开safari,在地址栏中输入 usd:// 或 urlsd:// ,系统会弹出提示框,提示是否跳转到应用,如果点击确认,便会跳到自己的应用。

只要URL的scheme与应用中定义的scheme相同,便可以从外部(比如safari)打开应用。当应用打开时,该应用的方法 - application:handleOpenURL: 会被调用,而在该方法中能够获取到完整的URL,因此外部应用能够通过URL向被打开的应用传递参数。

下图为一个http协议的URL,其scheme为http。

比如本例中在浏览器中输入 usd://scheme.demo/dir/redirect?sku=123&lang=en ,此时应用会被打开。在方法 - application:handleOpenURL: 中设置断点,可以观察到如下信息:

此时通过解析 query 字段,应用便可获取外部应用传入的参数。

以上是关于自定义URL Scheme启动应用的主要内容,如果未能解决你的问题,请参考以下文章

ios 自定义URL Scheme启动App

ios和android应用都可以注册自定义url scheme吗

第一次使用Url scheme时App中iOS自定义Url Scheme打不开

Android URL Scheme唤醒之门

URL scheme启动Android应用,原生Android浏览器解析不正确

iOS URL Scheme,完成后返回 Safari