深度链接、延迟深度链接、App Links以及关于LinkedME实现深度链接的原理解析
开始之前,我们先介绍两个概念:深度链接(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实现深度链接的原理解析相关推荐
- 安卓app开发教程!Android动态换肤实现原理解析,值得收藏!
开头 Android开发,假如开始没有任何的开发经验的话, 千万不要着急,不要想着在短时间内就把一个语言学习好, 因为你之前没有任何的学习经验, 在这个过程中需要有耐心地学习完JAVA的基础知识, 然 ...
- VUE 项目落地页使用 LinkedME 深度链接服务跳回App
VUE 项目落地页使用 LinkedME 深度链接服务跳回App 当前需求: 在微信或者浏览器中打开页面, 需要跳转回对应app: 当前实现技术: 使用 LinkedME 深度链接服务 实现流程: 1 ...
- Android App links 链接打开app功能
1.深链接Deep link(URI SCHEME协议) 深链接即我们通常说的scheme跳转,需要我们在清单文件中对activity添加intent-fillter,并定义scheme(包括但不限于 ...
- android入门之App Links应用链接
文档:https://developer.android.com/training/app-links 1.简介 在android上点击链接的目的是访问想要查看的内容. 可以设置 Android 应用 ...
- iOS链接跳转到App
可行的方案大概有三种: 一.直接使用URL Scheme.(优点:十分简单,在plist文件中配置一个scheme,点击短信中的scheme或者将scheme输入到浏览器中就可以直接跳到App中. 缺 ...
- iOS点击短信中的链接跳转到App
现在有这样一个需求:用户点击短信上的链接跳转到我们的App中或者App中的指定页面. 可行的方案大概有三种: 一.直接使用URL Scheme.(优点:十分简单,在plist文件中配置一个scheme ...
- ios html转换成网页,ios App加载本地HTML网页,点击网页链接跳转到app页面的方法
一.如何在APP里加载本地html文件内容: 首先准备一个html文件,比如内容如下: title go to app 接下来,在APP里定义一个UIWebView,用来显示html文件内容: //定 ...
- IOS之 点击链接跳转到App Store指定App(应用程序)
得到应用的链接地址 https://apps.apple.com/cn/app/id+应用程序编号 或 itms-apps://itunes.apple.com/cn/app/id+应用程序编号 应用 ...
- iOS 类似复制链接打开淘宝APP后弹出页面功能
写在前面 我们应该都有用过这个功能,你的朋友微信给你分享了一个淘宝里面的商品链接,然后当你复制这个链接打开淘宝APP的时候,就会弹出一个弹窗,像这样: example.PNG 这个功能想必大家都挺熟悉 ...
最新文章
- MySql 密码忘记了,不用重装
- MapReduce实现共同朋友问题
- matlab盒子分形维数_分形维数--matlab
- altiumer designer学习
- (转)淘淘商城系列——首页轮播图展示
- C# 算法之链表、双向链表以及正向反向遍历实现
- 从skyeye学习arm( linux篇)
- JVM内存分配与垃圾回收
- cassandra vs mongo (1)存储引擎
- linux命令行使用
- php mysql 内存表_用mysql内存表来代替php session的类_PHP教程
- 华为双前置摄像头_双录—华为手机前置摄像头双录画质提升办法
- ffmpeg文档5:同步视频
- 两栏 论文首页 插尾注方法 word2019
- 3 - Error writing file 'C:\Windows\TEMP\MY18F3.tmp' (Errcode: 28)
- ocdma相干非相干_相干成像和非相干成像有什么区别?
- 如何把C盘下用户的中文用户名改成英文用户名
- 戴尔电脑怎么录屏?这6个方法教你轻松录屏
- 计算机网络安全工作室介绍,计算机网络技术专业 “网络工作室”做法简介
- ui设计范畴,ui设计分为哪几类
热门文章
- el-talbe如何在打印的时候,每页都能有表头?
- 中小企业会计核算存在的问题及对策
- python英文文本情感分析_舆情信息浩如烟海?看看如何用Python进行英文文本的情感分析...
- Python全栈开发【基础-09】深浅拷贝+while循环
- 启动docker时映射到宿主机时出现 /usr/bin/docker-current: Error response from daemon: driver failed……的解决方案
- html打气球游戏,打气球.html
- python的re模块替换文件字符串_Python 正则处理_re模块
- 2022-2028年中国医用纺织品行业市场发展潜力及投资风险预测报告
- 无法同步因计算机未授权,iTunes无法授权和同步解决办法教程
- stimulsoft入门教程:报表与页面上的图表(一)