无标题文章

MobLink | URL Scheme和Universal Link区别

一.简介苹果的沙盒机制

一般来说,我们使用的智能设备上有许多我们的个人信息。比如:联系方式、银行卡/信用卡信息、支付宝/Paypal/各大商城的账户密码、照片甚至行程与位置信息等。

如果说,你设备上的每一个应用,不管是官方的还是你从任何商城安装的应用都可以随意地获取这些信息,那么你轻则收到骚扰信息和邮件、重则后果不堪设想。如何让这些信息不被其它应用随意使用,或者说,如何让这些信息仅在设备所有者本人知情并允许的情况下被使用,是所有智能设备与操作系统所要在乎的核心安全问题。

在 iOS 这个操作系统中,针对这个问题,苹果使用了名为「沙盒」的机制:应用只能访问它声明可能访问的资源。一切提交到 App Store 的应用都必须遵守这个机制。

苹果选择沙盒来保障用户的隐私和安全,但沙盒也阻碍了应用间合理的信息共享,于是有了 URL Schemes 这个解决办法。

二.简介URL Scheme

1.URL Scheme是什么?

通过对比网页链接来理解 iOS 上的 URL Schemes,应该就容易多了。

URL Schemes 有两个单词:

URL,我们都很清楚,http://www.apple.com 就是个 URL,我们也叫它链接或网址;

Schemes,表示的是一个 URL 中的一个位置——最初始的位置,即 ://之前的那段字符。比如 http://www.apple.com 这个网址的 Schemes 是 http。

根据我们上面对 URL Schemes 的使用,我们可以很轻易地理解,在以本地应用为主的 iOS 上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。而定位这个应用的,就应该这个应用的 URL 的 Schemes 部分,也就是开头儿那部分。比如短信,就是 sms:

2.如何配置URL Scheme?

项目中需要配置URL Scheme以用于场景恢复时跳转到应用中(这里的scheme要唯一确定,不要与其他应用一致,建议使用项目名称作为scheme,不然有可能会跳转到其他的应用里)。

在iOS工程中选择工程Target,选择Info选项,然后打开URL Types,添加URL Scheme。可以自定义协议名称,如moblink。这个形式的 URI 就会关联跳转到工程中。

三.简介Universal Link

Universal Link是Apple在WWDC2015上为IOS9引入的一个新功能,是通过传统HTTP链接来启动App的技术。可以使用相同的网址打开网站和App。

通过唯一的网址,就可以链接到App中具体的视图,不需要特殊的schema。如果用户没有安装App则链接到对应的普通网页。

如何添加这个功能:

在苹果开发者网站中打开需要使用Universal Link功能的App中的Associated Domains

上传apple-app-site-association到服务器根目录下

在AppDelegate中实现相应的方法

四.URL Scheme和Universal Link区别

在iOS 9以前,我们从外部启动App都是通过URL Scheme实现跳转的。这种方式虽然可自定义程度很高,能够巧妙地实现很多跳转,但弊端也很明显:我们只能通过scheme://example这种格式的链接来实现跳转,而且现在苹果还对这种方式的跳转加了一个提示框:“是否打开XXX”。对于对Web和原生App交互的场景需求量很大的产品来说,这样的跳转方式显然是步骤冗杂的,用户体验并不好。

iOS 9以后,Universal Link的出现解决了这个问题。它所提供的直接、顺畅、无缝衔接的跳转能够让用户体验提升一个级别。用户可以点击开发者指定的类似于https://example.com/t的URL直接唤醒App,而不需要在浏览器打开再点击其他按钮。

你可能感兴趣的:(无标题文章)