微信号:ji-niu

介绍:极牛,意为极客的极,大牛的牛.在极牛上聚集了顶级互联网公司的CTO、首席架构师、技术专家.他们拥有最接地气的实战经验并乐于分享.与这些专家一道,极牛致力于加速科技的创新,为创业者扫清路上的技术烦恼.

技术分享|深度链接在移动开发中的应用

2016-08-04 18:24 齐波

极牛技术实践分享活动 

极牛技术实践分享系列活动是极牛联合顶级VC、技术专家,为企业、技术人提供的一种系统的线上技术分享活动。

每期不同的技术主题,和行业专家深度探讨,专注解决技术实践难点,推动技术创新。每两周的周三20点通过牛直播edu准时开课。欢迎各个机构、企业的行业专家、技术人报名参加。

 

本期嘉宾

齐波,LinkedME创始人兼CEO,清华大学计算机硕士,原新浪微博高级架构师,在深度链接和大数据领域的有自己独到认知和见解。

LinkedME作为国内早期企业级深度链接服务平台,于15年入住氪空间并在16年初获得数百万天使投资,目前已积累上百家企业用户。




随着移动应用的爆发,App与App之间页面无法连接的问题越来越严重,连锁效应也会非常显著。APP开发者羡慕大厂流量的同时,也苦恼于自己开发的APP并没有足够的流量入口让用户使用,比如用户在微信微博中的接触到自己产品的宣传,但是由于下载APP太重或者没有促使用户继续使用的手段而流失。孤立带来的问题越来越多,国外的技术公司Google、Facebook都在尝试这解决。深度链接(deeplinking)的出现,旨在改变这一问题,让APP和APP之间能互相链接并能一键跳转。

 

01|深度链接的发展史

 

PC时代Mobile时代的转变

 

PC时代:网站下面页面的所有链接,都有着唯一的URL,网站时间的页面是无缝跳转的,页面有着超链接;

Mobile时代:APP下面的页面,没有了统一的URL,APP成为信息孤岛。APP之间的页面不能够灵活跳转到;

 

深度链接(Deep Linking),即绕过被链网站首页直接链接到分页的链接技术。

移动深度链接(Mobile Deep Linking),即绕过APP首页直接链接到分页的链接技术。

因环境不同,从而深度链接和移动链接的实现原理也不同。

 

深度链接


在PC时代,Web框架中网站的所有页面有着统一资源标识符(URL or URI),标示用户请求的唯一网络资源。网站主页和分页的URL,没有什么区别。

在2006年,深度链接成为媒体的焦点。因为很多的开发人员利用深度链接技术,让Google提高网站分页面的收录量,以达到网站访问流量的目的。

同时,深度链接技术还被使用成为“盗链”,商业开发人员,利用深度链接技术盗取第三方网站的文件,涉嫌侵犯版本的诸多的问题,还引发了很多的官司。具体不再详述。

 

移动深度链接

 

2007年1月,Apple公司在Macworld展览会上公布,随后于同年的6月正式发布第一版iOS移动操作系统,然而在2007年6月,乔布斯在苹果发布会上正式发布iPhone 4智能手机。Google公司紧跟步伐,在2007年11月正式向外界展示了Android移动操作系统。

在iOS和Android正式上市时,Apple和Google公司考虑各种机制,沙盒,URI Scheme,安全等问题,导致如今APP成为信息的孤岛,信息被和隔离,体验被隔离。

 

02|深度链接的功能特性

 



 

03|深度链接在iOS系统中的实现和应用

 

URL Scheme实现


URL Scheme可以通过特定的URI方式传递参数给另一个APP。


例如Uber://pid=3894&source=25与Android的URL Scheme类似,是为方便APP之间相互调用而设计的。你可以通过一个类似URL的链接,通过系统的OpenURI来打开该APP,并可以传递一些参数。每个URL必须能唯一标识一个APP,如果你设置的URL与别的APP的URL冲突,此时,你的APP不一定会被调用起来,原因是当APP在安装的时候就已经在系统里面注册了此APP的URL Scheme,如果你的一致但是后安装的,那么系统不会调用你的APP,因为你的APP赊着的URL Scheme被覆盖了。当然系统的APP的URL Scheme是优先级高的,不用想着能覆盖系统APP的URL Scheme的注册调用。


URL Scheme可以建立APP与APP之间的关联,打破信息孤岛。大家知道在iOS系统里面APP之间是相互隔离的,不像Android,每个组件都可以作为一个独立的功能被其他APP调用,但是,iOS系统里面也需要完成类似于三方功能如支付、搜索跳转、导航等等跨APP的功能,怎么实现呢?苹果就使用了URL Scheme来实现了这个功能。通过各个APP设计的符合苹果的统一规范的URL Scheme,系统就会自动去调用相关的APP来完成你的请求。


比如:我们的APP需要使用支付宝的三方支付功能、我的APP需要使用微信分享好的文章,那么此时就可以通过URL Scheme来传递这些数据到支付宝APP或者微信APP,系统会通过这些APP的URLScheme来调起这些APP,完成你所需要做的跨APP的功能。

 


URI Scheme存在的问题

 

URI Scheme能后现实APP与APP之间的关联,并且是无缝的。例如QQ音乐跳转全民K歌,礼物说跳转淘宝等等。由于H5相对于APP轻量,H5和APP要兼并开发。

然而,从微信和微博内置浏览器查看H5页面时,大部分APP不能够回到APP查看/id=2370247&source=zhig才行。

 

通过Safari跳转,如果用户已安装APP直接跳转到APP中,如果用户没有安装APP则跳转到AppStore中下载,下载完成后打开APP不能到达用户需要的页面。

 


进阶版的深度链接:Universal Links

 

苹果在iOS9中推出Universal Links(通用链接)一种能够方便的通过传统HTTPS链接来启动APP,使用相同的网址打开网站和APP。

 

通过唯一的网址,不需要特别的URI Scheme就可以链接一个特定APP里面的视图。

比如:一个APP分享内容到微信,然后用户在微信内置浏览器中看到H5页面内容,然后用户触发Universal Links后,直接打开APP内相同的页面内容。

 


Universal Links的逻辑

 

一种能够方便的通过传统HTTP/HTTPS的链接来启动APP,使用相同的网址打开网站和APP。

通过唯一的网址,就可以链接一个特定的视图到你的APP里面,不需要特别的URL Scheme。启动APP,不再使用Safari浏览器唤起APP。

 

比如唯品会使用了通用链接,百度、微信等途径,点击一个链接,你的iOS设备都会在唯品会里面自动打开这个页面,而不是当你没有安装时转到普通的网页。这个用户体验是流畅的,最重要的是用户不会失去上下文(跳到APP后Safari上不再留下空标签)。

 

04|深度链接在Android系统中的实现和应用

 


 

iOS和Android实现深度链接的困难


  • 跨平台

要支持Android、iOS、iPad、Windows Phone、hybrid APP等等,每一个平台的技术原理都可能不同,要考虑兼容。

 

  • 支持不同浏览器

国内浏览器复杂,有百度浏览器,QQ浏览器、Chrome、AndroidDefault Browser、360浏览器、猎豹浏览器、Safari、UC浏览器,还要考虑浏览器版本的问题,要兼容不同的版本。

 

  • 不同的手机厂商

国内手机厂商比较多,小米、三星、锤子、酷派、华为、中兴、苹果等等,还要考虑到不同手机厂商使用的系统版本;

 

  • 不同的应用商店

国内应用商店比较多,豌豆荚、应用宝、360手机助手、百度手机助手、小米商店等等,怎样使得深度链接依然能够实现场景还原等等。

 

05|深度链接在实际场景中的应用



直播技术 powered by 


只需要一个idea,即可迅速、低成本的实现手机客户端App、微信、H5和PC浏览器全平台观看的直播应用。牛直播在线上教育场景下,具有领先市场的优势:

 


极牛是谁

极牛是顶级大牛驱动的技术服务。从专家咨询,到落地实施,极牛为您提供全周期的技术支持。

无论从零开始获得全新直播应用,还是集成现有业务,都可以无缝配合极牛开发服务。

 

线上分享活动报名方式

本活动仅限技术专家或技术相关从业者报名。报名时请提供真实的姓名、公司、职位信息和联系方式。我们将会筛选出符合条件的报名者参加。

 





点击下方【阅读原文】进入报名链接。


 
极牛 更多文章 吴际超谈创业:我们的初心,就是为“淘金者”“送水” 我如何让煤二代变成互联网+企业家 慢性子设计师玩转快节奏互联网——专访站酷网创始人梁耀明 上线两个月 单篇阅读1.3w 铅笔道在创业媒体能炸开怎样的花? 什么样的创业空间才能脱颖而出?小而美的星库空间,只给想静静创业的你
猜您喜欢 贱萌贱萌的,程序员就是这样被逼成程序猿的 Spark性能调优 安检可以更安全吗?答案是肯定的,但需要付出一点儿隐私 对于玩大数据的各位,亿级数据你们是怎么处理的呢? 基于微服务的云测试系统(2):基于Docker镜像的持续部署实践