android deeplink流程,Android Deeplink探究[通俗易懂]

android deeplink流程,Android Deeplink探究[通俗易懂]移动端深度链接,简称deeplink。这是一种通过uri链接到app特定位置的一种跳转技术,不单是简单地通过网页、app等打开目标app,还能达到利用传递标识跳转至不同页面的效果。参考CreateDeepLinkstoAppContent场景在推广、广告、应用间跳转的场景下,使用极多。这里将根据以下要点来介绍deeplink。intentintent-filterscheme原理介绍in…

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

移动端深度链接,简称deeplink。这是一种通过uri链接到app特定位置的一种跳转技术,不单是简单地通过网页、app等打开目标app,还能达到利用传递标识跳转至不同页面的效果。参考Create Deep Links to App Content

场景

在推广、广告、应用间跳转的场景下,使用极多。这里将根据以下要点来介绍deeplink。

intent

intent-filter

scheme

原理介绍

intent

首先我们要讲一下的是intent,在android中,intent作为“调用意图”来解释再合适不过了,其作用不用多说,就是为调用其他app所做的封装,这里就简单说一下。intent的调用有显式和隐式两种方式。

显式调用就好比你去别人家做客,显式调用类似于你知道朋友家的地址,浙江省杭州市西湖区某某小区几栋几零几,人家门牌都写的很清楚,你去找就很容易,指向性唯一。

隐式调用包含一定的条件,有action,category,data,type,extras,flags等等,每一种属性都类似于筛选条件。你说你要去杭州的山上玩,那么就会给你定位到杭州市的各种山,只要符合这个条件,他们都会一一被列出来,至于去哪里,就看你自己选。

intent-filter

intent-filter是针对你跳转的目标来讲的,就类似于门牌的修饰,他会在门牌上定义上述介绍的那些属性。当有intent发送过来的时候,就会筛选出符合条件的app来。最常见的就是

这俩属性可以说AndroidManifest.xml最常见的两行代码了,作用就是app第一个启动的activity。一个app里有很多activity,在启动的时候,系统并不知道哪个是第一个要启动的,那么他就发一个setAction为“android.intent.action.MAIN”、setCategory为“android.intent.category.LAUNCHER”的intent出来,被匹配的到Activity就会启动了。

Android Deeplink探究

deeplink所需要的几个属性大致有以下几个

android:host=”www.abc.com”

android:pathPrefix=”/work” />

这边一个个介绍过去,action.VIEW是打开一个视图,category.DEFAULT为默认,category.DEFAULT为设置该组件可以使用浏览器启动,这个是关键,从浏览器跳转,就要通过这个属性。data中的scheme、host、pathPrefix等等,这个是uri的链接,scheme可以导向app的跳转,是另一个关键。

接下来就是生成一个短链,通过浏览器打开就行了。比如”

好了,deeplink的原理及使用,就基本讲完了。

拓展

由于推广等场景的使用,许多都是由网页打开,针对一些未安装的用户进行跳转的。整个流程要求用户先去应用市场下载,下载完后再打开跳转。普通的deeplink实现方案已经不能满足,进而演化出一种延迟深度链接。

目前市场上流行的解决方案很多,类似魔窗,google的firebase dynamic-link,branch,facebook的app-links等等(我是不是要收一波广告费txtx)。翻看了一下源码及实现,大致是通过访问定向链接的时候(这个和短链不一样,短链是针对本地app的,长链是可以真正访问的http网页),会上传设备、ip、时间戳等信息,在app启动的时候,再去异步向他们服务器请求短链。也有和应用市场合作,先把信息传递给应用市场,在市场中打开也可以定向跳转。ps:iOS中的实现好像是访问浏览器中的cookie。

方案很多,各有优缺点,目前来看均可尝试,结合各平台的资源去实现。

总结

deeplink的使用大致就上述内容,还有深层次的内容,像是scheme协议等,有空深究了再做分享。

备注

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

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

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


相关推荐

  • 用js写简单选项卡

    用js写简单选项卡如图,最简单的纯粹的选项卡第一步,当然是先写html代码和css样式<!DOCTYPEhtml><html><head><metacharset=&quo

    2022年7月2日
    27
  • delphi 字符串函数_C语言字符串函数

    delphi 字符串函数_C语言字符串函数QueueUserWorkItem函数Windows说明如下:一、异步调用函数:BOOLQueueUserWorkItem(PTHREAD_START_ROUTINEpfnCallback,PVOIDpvContext,ULONGdwFlags);该函数将“工作项目”放入线程池并且立即返回。工作项目是指一个用pfnCallback参数标识的函数。它被调用并且传递…

    2022年9月16日
    3
  • 统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )

    统计学 入门基础PDF( Probability Density Function) 和PMF ( Probability Mass Function )PMF(概率质量函数):是对 离散随机变量的定义. 是离散随机变量 在各个特定取值的概率. 该函数通俗来说,就是对于一个离散型概率事件来说,使用这个函数来求它的各个成功事件结果的概率.PDF(概率密度函数):是对连续性随机变量的定义.与PMF不同的是PDF在特定点上的值并不是该点的概率,连续随机概率事件只能求一段区域内发生事件的概率,通过对这段区间进

    2022年5月23日
    47
  • 史上最强 Java 学习路线图!

    网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的。第一部分:Java基础篇这个阶段就是编程入门,掌握Java这门编程语言的基本语法,为后面的修行之路打好基础。包括的知识点有:环境搭建——IntellijIDEA一站式搞定Java基础语法面向对象——封装、继承、多态数组字符串集合框架IO反射注解网络编程并发编程这方面的资源我给大家梳理下:1)针对IntellijIDEA,GitHub上有一份简体中文版教

    2022年4月11日
    67
  • 软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目

    软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目软件工程毕业设计题目汇总【不断更新中】1.微信小程序校园表白墙微信小程序2.房屋租赁管理系统3.航空售票管理系统4.高校会议室管理系统5.高校就业管理系统6.失物招领系统7.图书销售系统8.微信小程序商城系统9.微信小程序资料分享系统10.微信小程序校园点歌系统11.校园资料分享系统12.电影网站系统13.人事管理系统14.视频教学网站15.网…………

    2022年10月21日
    2
  • intellij idea 激活码2021-04-20(破解版激活)

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

    2022年3月17日
    64

发表回复

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

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