开始之前,我们先介绍两个概念:深度链接(Deep Linking)和延迟深度链接(Deferred Deep Linking)。
深度链接
我们通过例子来说明这个问题,比如说我们使用淘宝,看到一个宝贝很不错,这时候呢我们会将宝贝的信息分享到朋友圈或者分享给朋友,我们的朋友点击,在Android M系统之前呢一般会打开一个H5界面,界面中会有一个按钮(像“打开手机淘宝”),如果手机上有淘宝的话会打开手机淘宝,而深度链接呢,不但要打开手机淘宝,还要跳转到手机淘宝中该宝贝的展示界面。如果是Android M系统中,就不需要再打开一个H5界面而是可以点击链接直接打开手机淘宝,因为Android M引入了App Links功能。
延迟深度链接
在深度链接的基础上,并且手机上没有指定的App,需要下载、安装之后,在定位到App中特定的界面。
App Links
我们都知道从Android M(6.0)开始,Android系统实现了App Links功能:在系统中点击URL会定位到指定的App进行处理,而不是像以前一样打开浏览器。想了解App Links的具体实现可以参考下面这篇文章:
Android M App Links: 实现, 缺陷以及解决办法
为了实现App Links,需要我们做如下配置:
1、我们需要在AndroidManifest.xml进行配置,如下:

<activity  android:name="com.your.app.activity.ParseDeepLinkActivity"...><intent-filter android:autoVerify="true"><data android:scheme="http" android:host="yourdomain.com" /><data android:scheme="https" android:host="yourdomain.com" />...</intent-filter>
</activity>

这里配置的意思是,如果在系统中点击“http[s]://youdomain.com”开头的URL,系统会打开该activity进行处理。前提是通过验证,验证什么呢,客观莫着急,我们下边会解释。android:autoVerify就是用来开启验证的,data是用来配置我们处理什么样的URL.
2、验证:当你请求成为某URL的默认处理App的时候,系统回去验证,URL所属的站点是否同意你来处理。系统会去站点的该地址https://yourdomain.com/.well-known/statements.json取一个文件,如果文件存在,并且通过验证的话,以后在系统中,你的App就会成为此URL的默认处理App。statements.json的格式为下:

[{"relation": ["delegate_permission/common.handle_all_urls"],"target": {"namespace": "android_app","package_name": "com.mycompany.myapp","sha256_cert_fingerprints": ["6C:EC:C5:0E:34:AE....EB:0C:9B"]}
}]

“package_name”填写你App的包名;”sha256_cert_fingerprints”你App签名文件的SHA256指纹.TIPS:现在Android验证的时候,只支持https协议
LinkedME
从上边的介绍大家应该都对App Links有了一定的了解,App Links具有一定的局限性:
(1)App Links只能在Android M以上使用;
(2)你得有自己的Web站点,并且Web站点支持Https协议
LinkME之类的服务可以帮助我们快速搭建深度链接,下边是个人分析的LinkME原理:

深度链接、延迟深度链接、App Links以及关于LinkedME实现深度链接的原理解析相关推荐

  1. 安卓app开发教程!Android动态换肤实现原理解析,值得收藏!

    开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然 ...

  2. VUE 项目落地页使用 LinkedME 深度链接服务跳回App

    VUE 项目落地页使用 LinkedME 深度链接服务跳回App 当前需求: 在微信或者浏览器中打开页面, 需要跳转回对应app: 当前实现技术: 使用 LinkedME 深度链接服务 实现流程: 1 ...

  3. Android App links 链接打开app功能

    1.深链接Deep link(URI SCHEME协议) 深链接即我们通常说的scheme跳转,需要我们在清单文件中对activity添加intent-fillter,并定义scheme(包括但不限于 ...

  4. android入门之App Links应用链接

    文档:https://developer.android.com/training/app-links 1.简介 在android上点击链接的目的是访问想要查看的内容. 可以设置 Android 应用 ...

  5. iOS链接跳转到App

    可行的方案大概有三种: 一.直接使用URL Scheme.(优点:十分简单,在plist文件中配置一个scheme,点击短信中的scheme或者将scheme输入到浏览器中就可以直接跳到App中. 缺 ...

  6. iOS点击短信中的链接跳转到App

    现在有这样一个需求:用户点击短信上的链接跳转到我们的App中或者App中的指定页面. 可行的方案大概有三种: 一.直接使用URL Scheme.(优点:十分简单,在plist文件中配置一个scheme ...

  7. ios html转换成网页,ios App加载本地HTML网页,点击网页链接跳转到app页面的方法

    一.如何在APP里加载本地html文件内容: 首先准备一个html文件,比如内容如下: title go to app 接下来,在APP里定义一个UIWebView,用来显示html文件内容: //定 ...

  8. IOS之 点击链接跳转到App Store指定App(应用程序)

    得到应用的链接地址 https://apps.apple.com/cn/app/id+应用程序编号 或 itms-apps://itunes.apple.com/cn/app/id+应用程序编号 应用 ...

  9. iOS 类似复制链接打开淘宝APP后弹出页面功能

    写在前面 我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样: example.PNG 这个功能想必大家都挺熟悉 ...

最新文章

  1. MySql 密码忘记了,不用重装
  2. MapReduce实现共同朋友问题
  3. matlab盒子分形维数_分形维数--matlab
  4. altiumer designer学习
  5. (转)淘淘商城系列——首页轮播图展示
  6. C# 算法之链表、双向链表以及正向反向遍历实现
  7. 从skyeye学习arm( linux篇)
  8. JVM内存分配与垃圾回收
  9. cassandra vs mongo (1)存储引擎
  10. linux命令行使用
  11. php mysql 内存表_用mysql内存表来代替php session的类_PHP教程
  12. 华为双前置摄像头_双录—华为手机前置摄像头双录画质提升办法
  13. ffmpeg文档5:同步视频
  14. 两栏 论文首页 插尾注方法 word2019
  15. 3 - Error writing file 'C:\Windows\TEMP\MY18F3.tmp' (Errcode: 28)
  16. ocdma相干非相干_相干成像和非相干成像有什么区别?
  17. 如何把C盘下用户的中文用户名改成英文用户名
  18. 戴尔电脑怎么录屏?这6个方法教你轻松录屏
  19. 计算机网络安全工作室介绍,计算机网络技术专业 “网络工作室”做法简介
  20. ui设计范畴,ui设计分为哪几类

热门文章

  1. el-talbe如何在打印的时候,每页都能有表头?
  2. 中小企业会计核算存在的问题及对策
  3. python英文文本情感分析_舆情信息浩如烟海?看看如何用Python进行英文文本的情感分析...
  4. Python全栈开发【基础-09】深浅拷贝+while循环
  5. 启动docker时映射到宿主机时出现 /usr/bin/docker-current: Error response from daemon: driver failed……的解决方案
  6. html打气球游戏,打气球.html
  7. python的re模块替换文件字符串_Python 正则处理_re模块
  8. 2022-2028年中国医用纺织品行业市场发展潜力及投资风险预测报告
  9. 无法同步因计算机未授权,iTunes无法授权和同步解决办法教程
  10. stimulsoft入门教程:报表与页面上的图表(一)