什么是Deeplink?以及Deeplink的原理

什么是Deeplink?以及Deeplink的原理先说一个日常场景帮大家理解。最近双十一、双十二,不知道大家有没有被亲友们发的某宝、某东、或拼夕夕的各类信息轮番轰炸?小编的亲友群、闺蜜群里常年有这类链接挂着,小红薯的笔记分享,某宝的化妆品、衣服链接分享等等,这一个个的分享链接织成一张张网,真可谓是增加亲友亲密度,快速获取优质好物的利器。这背后有个特别容易忽视却又极其重要的知识点。比如你在社交媒体上分享给翠花一个某App上的精选好店,翠花想要查看有几种操作方式:l如果翠花已经安装了该App,那她只要点开链接就可以跳转到App;l如果…

大家好,又见面了,我是你们的朋友全栈君。

先说一个日常场景帮大家理解。最近双十一、双十二,不知道大家有没有被亲友们发的某宝、某东、或拼夕夕的各类信息轮番轰炸?小编的亲友群、闺蜜群里常年有这类链接挂着,小红薯的笔记分享,某宝的化妆品、衣服链接分享等等,这一个个的分享链接织成一张张网,真可谓是增加亲友亲密度,快速获取优质好物的利器。

 

这背后有个特别容易忽视却又极其重要的知识点。比如你在社交媒体上分享给翠花一个某App上的精选好店,翠花想要查看有几种操作方式:

l  如果翠花已经安装了该App,那她只要点开链接就可以跳转到App;

l  如果翠花没有安装相关App,那就会跳转到应用市场指引安装

 

类型场景还有其他可能性:

l  短信,比如某宝上新发给翠花的短信,翠花可以点击短信链接打开App

l  短信,比如翠花收到领英好友申请,她就需要通过短信打开浏览器,然后通过浏览器跳转指定页面

l  通过分享到微信中h5页面,在微信中打开App(这个需要到微信开放平台做配置)。

 

以上场景中的知识点:

l  在浏览器或者短信中唤起App,如果安装了就能唤起,否则引导下载。对于Android而言,这里主要牵扯的技术就是Deeplink,也可以简单看成scheme。

l  其实,AppLink就是特殊的Deeplink,只不过它多了一种类似于验证机制,如果验证通过,就设置默认打开,如果验证不过,则退化为Deeplink,如果单从APP端来看,区别主要在Manifest文件中的android:autoVerify=”true”。

l  还有在微信中,也可以作出这样操作。如果用户已经安装App,点击跳转App则会通过应用宝,打开该应用并且跳转到相应的页面。这种也是一种AppLink。

 

所以究竟什么是Deeplink?

总结来说,Deeplink,又叫深度链接技术,是指在App/短信/广告里点击链接,用户点击后, 能直接跳转到目标App具体位置的技术,深度链接打破了网站与App间的壁垒,成为实现网站与App相互跳转的桥梁。开发者不仅可以通过Deeplink实现网站到App互相跳转,也可以实现从多个平台(QQ、微信、微博、Twitter、Facebook、短信、各大浏览器等)到App内指定页的跳转。例如用户将电商App内的一个详情页链接通过短信形式发送给其他亲友,用户点击短信内的链接就能打开对应的H5页面,然后直接跳转到电商App内的指定详情页,而不是App首页。如果用户并未安装App,那么就会跳转到App下载页面。等用户安装打开App后仍然能跳转到指定页面。Deeplink技术不仅可以实现场景快速还原,缩短用户使用路径,更重要的是能够用于App拉新推广场景,降低用户流失率。

 

image

 

不同操作系统的Deeplink技术

Deeplink技术是操作系统本身就有的能力,且发展历史已经有很多年了。因此不同操作系统、不同版本都有着不同版本的Deeplink技术

1、URL Scheme——iOS9和安卓6以前

在iOS 9和安卓6(M)之前,移动端实现Deeplink的方式都是通过URL Scheme。URL,我们都很清楚,weixin://dl/moments就是一个 URL,也叫它链接或网址;Scheme,表示的是一个 URL 中最初始的位置,即 ://之前的那段字符,例如这个URL中的Scheme就是weixin。我们可以用Scheme来定位对应的App。例如淘宝的Scheme就是taobao、支付宝的Scheme就是alipay,新浪微博的Scheme是sinaweibo。

 

被打开的App可以向操作系统提前注册一个 URL,开头的Scheme 用于从浏览器或其他App中拉起本App。移动操作系统提供解析Scheme的能力,判断Scheme属于哪个App,唤起并将参数传递给App。此外通过指定的 URL 中其他字段(如path等),可以让App在被唤起后直接打开某些特定页面,比如商品详情页、活动详情页等等。

 

1.2  URL Scheme协议格式

一般来说整段的URL Scheme是这种的形式:Scheme://host:port/path?query=xxxxxxx。其中path代表了想要跳转的指定页面,而query代表了想要传递的参数。

 

1.3 URL Scheme缺点

URL Scheme方式优点是开发简单,但弊端也很明显:

 

l  我们只能通过固定协议格式的链接来实现跳转,而且打开H5页面时,会出现一个提示框:“是否打开XXX”。用户确认了才会跳转到App中,增加了用户流程

 

l  微信、QQ等把URL Scheme 打开App这种方式给禁了,但是它们都各自维护着一个白名单,如果Scheme不在该白名单内,那么就不能在他们的App内打开这个App(如果被封锁了那么用户只能通过右上角浏览器内打开App)

 

2、 Universal link——iOS 9以后

Universal link 是苹果公司在2015年推出的新一代Deeplink技术,iOS9及以上的用户可以通过点击一个https 链接无缝的跳转到一个App应用内的指定页面,不需要让用户点击“是否打开xx”。因为少了这个提示框,所以Universal link比URL Scheme方式体验更好,更重要的优势是目前微信和QQ已经支持Universal link这种形式了,因此我们更推荐开发者在iOS端使用这种方式唤起App

 

微信目前已支持通过Universal link方式直接打开第三方App,要求SDK版本大于等于1.8.6.1。用户主要需要配置以下几步才能使用正常功能,详情配置步骤可以参照微信Universal link文档

(1)首先按照苹果官方文档,配置Universal link。微信对Universal Links配置有以下要求:

  • Universal Links必须支持https
  • Universal Links配置的paths不能带query参数
  • 微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/*

(2)然后向微信注册自己的应用id和Universal Links。

此外QQ也已支持Universal link跳转方式,要求SDK版本大于等于3.3.6.详情配置步骤可以参考QQ配置文档

 

3、 App Link——Andriod M(6)以后

App Link是由安卓发布的,在Andriod M以后才能使用。用户可以点击一个H5链接时直接跳转到 App 指定页面,而不会让用户点击”是否打开xx“。所以App Link比URL Scheme方式体验更好。

 

注:因为目前App Link在中国大陆内使用必须要翻墙,使用不便。所以国内的Top第三方如友盟+暂未支持AppLink这种方式,Andriod端只能使用URL Scheme这种方式。但据小编所知,后续友盟+会支持AppLink这种拉起App方式。

 

对于开发者而言,要不要接第三方Deeplink工具?

 

虽然开发者可以自己配置实现Deeplink技术,但是现实中还是会遇到很多问题。比如进行资源配置、兼容性适配、模糊匹配等事项时需要耗费大量的人力和维护成本,实现起来相当复杂。现在常用的方法,也是小编比较推荐的方式,即直接接入像友盟+这样专业的第三方,这样可以大大缩短开发时间,保障服务稳定性。更值得一提的是,比如友盟+还为开发者提供统计Deeplink带来的回流新增数据,即这个链接带来了多少的App打开次数和新增用户,非常适合高效的团队做直接接入。对此小编就不做赘述了,大家可以自行去了解~~

 

友盟+Deeplink了解请点击:https://at.umtrack.com/LLzK1r

 

 

60s手把手教你如何接入:https://at.umtrack.com/5j0T1r

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149226.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm2021.4.24激活码破解(破解版激活)「建议收藏」

    phpstorm2021.4.24激活码破解(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    205
  • 语音信号处理入门系列(1)—— 语音信号处理概念「建议收藏」

    语音信号处理入门系列(1)—— 语音信号处理概念「建议收藏」文章目录1.语音交互2.复杂的声学环境2.1声学回声消除2.2解混响2.3语音分离2.4波束形成2.5噪声抑制2.6幅度控制2.7前端信号处理的技术路线3.参考4.推荐开源项目原博客地址:https://www.cnblogs.com/LXP-Never/p/13620804.html1.语音交互你知道苹果手机有几个麦克风吗?语音交互(VUI)是指人与人/设备通过自然语音进行信息传递的过程。语音交互的优势:输入效率高。语音输入的速度是传统键盘输入方式的3倍以上。例如:语

    2022年5月18日
    57
  • Python statsmodel包训练LR模型

    Python statsmodel包训练LR模型Python中训练LR模型一般使用sklearn包,输出模型报告和其他机器学习方法一样。但从统计背景出发,想看更详细的报告,statsmodel包可以帮助实现。1.训练模型importstatsmodels.apiassmfromstatsmodels.stats.outliers_influenceimportvariance_inflation_factor#tr…

    2022年10月13日
    2
  • STM32驱动ST7701S芯片(vⅰV0手机换屏价)

    1、配置GPIO口voidLCD_GPIO_Config(void){/*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDefGPIO_InitStructure;/*????IO??*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE…

    2022年4月11日
    360
  • idea 运行单个main方法_idea如何运行main方法[通俗易懂]

    idea 运行单个main方法_idea如何运行main方法[通俗易懂]使用IntelliJIdea打包可执行JAR1、Model结构如下:…IDEA发布1.8.1配置编译class的环境1.8.2配置web环境1.8.3发布到tomcat运行环境中1.8.4启动运行1.8.5发布到war文件操作完成后进入下一……Main-Class:Main这边Main既是运行类,含有main()方法的一个类文…

    2022年5月31日
    376
  • 联想st510开卡软件_无力吐槽的一单联想ST510固态硬盘数据恢复

    联想st510开卡软件_无力吐槽的一单联想ST510固态硬盘数据恢复接苏州IT服务商客户送修一块联想ST510固态硬盘需要恢复数据,故障现象为SSD可以正常识别,而且识别的速度也是很快的!,我们接上PC3000访问第一扇区显示代码是错误的,然后读取其它扇区就BSY状态了,必须从新断电加电才可以读取!(从经验判断这块SSD的主控应该是SM2258XT或SM2256K,PC3000SSD加载恢复的速度正常是8M每秒左右)由于这块硬盘转手次数太多(起码转了4手)也没…

    2022年9月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号