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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!

    四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!四足机器人、行走控制。附带源码及虚拟样机设计方案。针对目前仿生四足机器人控制中存在的稳定性低、控制精度不高、可控性差等问题,本文引入一种基于CPG(中央模式发生器)的步态控制算法模型,CPG生成的节律运动具有独立性与稳定性,还具有反馈调整功能,对波形调制处理后,能够实现仿生机器人的前进、后退、转弯、侧移、原地踏步等运动控制。针对仿生机器人研发周期长与成本高的问题,本课题利用Simulink与Adams构建虚拟样机对步态控制模型进行联合仿真验证。

    2022年5月2日
    65
  • ODS层设计规范_环境类别二类的保护层厚度是多少

    ODS层设计规范_环境类别二类的保护层厚度是多少ODS层设计规范更新时间:2021-06-0814:37我的收藏本页目录数据同步及处理规范 命名规范 数据存储及生命周期管理规范 数据质量规范本文为您介绍ODS层设计规范。数据同步及处理规范数据同步方式的选择 基本规范通过需求形式落地到DataWorks的数据集成,规范落地情况依赖工具的推进节奏。一个系统的源表只允许同步一次到MaxCompute。 数据加载与处理 通过一键实时同步至MaxCompute方案实现,请参见配置查看数据同步任务。 命名规范表命名

    2022年10月6日
    2
  • 软件漏洞分析简述

    软件漏洞分析简述软件漏洞1.1漏洞的定义漏洞,也叫脆弱性(英语:Vulnerability),是指计算机系统安全方面的缺陷,使得系统或其应用数据的保密性、完整性、可用性、访问控制等面临威胁。漏洞在各时间阶段的名称根据是否公开分为:未公开漏洞、已公开漏洞根据漏洞是否发现分为:未知漏洞、已知漏洞根据补丁和利用价值是否发布分为:0day漏洞、1day漏洞、历史漏洞图1漏洞在各时间阶段的名称漏洞的特…

    2022年5月20日
    60
  • Kaptcha 验证码框架使用

    Kaptcha 验证码框架使用基于springboot验证码框架kaptcha使用一、统一步骤引入maven坐标<dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId>…

    2022年6月18日
    55
  • js刷新当前页面的方法_javascript高级编程教程

    js刷新当前页面的方法_javascript高级编程教程javascriptrefreshpage几种页面刷新的方法本节内容:Javascript刷新当前页面的方法与实例。window.location.reload(),window.histo

    2022年8月6日
    5
  • jsp之session学习:session.setAttribute(String name,Object value)&session.getAttribute(String name);

    jsp之session学习:session.setAttribute(String name,Object value)&session.getAttribute(String name);CSDN博客怎么玩的,菜鸟入门;20161208;

    2022年10月17日
    3

发表回复

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

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