一、DeepLink的概念

DeepLink是将用户直接带到应用中特定内容的网址。在Android中,可以通过添加intent filters 并从传入的intent中提取数据来设置DeepLink,从而将 用户引导向正确的Activity。

当单击的链接或编程请求调用Web URI的intent时,Android系统将按顺序尝试以下每个操作,直到请求成功为止:

  1.打开用户首选的可以处理URI的App(如果已指定)。2.打开唯一可以处理URI的可用App。3.允许用户从对话框中选择App。

即:用户通过点击或者其他的操作发送url请求,系统会对该url进行解析,然后调起注册过相应scheme的应用,如果有多个注册,会弹出对话框让用户选择。

二、DeepLink的作用

实现了网页与App之间的跳转。每个App不再是一个个独立的孤岛。交互非常的方便,将App连接到了整个网络世界,用过浏览器就能随意的跳转。
2. 通过DeepLink方式App之间可以相互拉活,相互跳转。

三、使用

1.创建指向应用内容的链接,需要在应用的AndroidManifest.xml中配置包含如下元素和属性的intent filter

<action> 中指定ACTION_VIEW,以便可以从Google搜索访问意图过滤器

<data> 添加一个或多个<data> 标记,每个标记表示解析为活动的URI格式。<data>标签必须至少 包含该android:scheme 属性。

<category> 包括BROWSABLE 类别。为了从Web浏览器访问intent过滤器,需要它。没有它,单击浏览器中的链接无法解析为您的应用程序。

以下XML代码段显示了如何在清单中为深度链接指定intent过滤器。URI “example://gizmos”和“http://www.example.com/gizmos”两者都解析为此活动。

<activityandroid:name="com.example.android.GizmosActivity"android:label="@string/title_gizmos" ><intent-filter android:label="@string/filter_view_http_gizmos"><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><!-- Accepts URIs that begin with "http://www.example.com/gizmos” --><data android:scheme="http"android:host="www.example.com"android:pathPrefix="/gizmos" /><!-- note that the leading "/" is required for pathPrefix--></intent-filter><intent-filter android:label="@string/filter_view_example_gizmos"><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><!-- Accepts URIs that begin with "example://gizmos” --><data android:scheme="example"android:host="gizmos" /></intent-filter>
</activity>

注意:两个intent-filter仅元素不同。同一个intent-filter可以包括多个,创建intent-filter的目的是要申报的唯一URL(如特定的组合是非常重要的scheme和host),因此多个在同一个intent-filter实际上合并在一起考虑其组合属性的所有变体。例如,请考虑以下事项

<intent-filter>...<data android:scheme="https" android:host="www.example.com" /><data android:scheme="app" android:host="open.my.app" />
</intent-filter>

2.从传入的intent中读取数据

一旦系统通过intent filter启动Activity,就可以使用它提供的数据Intent来确定您需要呈现的内容。调用getData()和 getAction()方法来检索与传入相关的数据和操作Intent。可以在活动的生命周期中随时调用这些方法,但通常应该在早期回调期间执行此操作,例如 onCreate()或 onStart()。

  @Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Intent intent = getIntent();String action = intent.getAction();Uri data = intent.getData();
}

参考网站:https://developer.android.google.cn/training/app-links/deep-linking

【Android】DeepLink跳转简介相关推荐

  1. 《Android开源库 ~ 1》 GitHub Android Libraries Top 100 简介

    转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...

  2. GitHub Android Librarys Top 100 简介

    GitHub Android Librarys Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索J ...

  3. Android Deeplink,Facebook 广告deeplink配置与测试

    先对DepplLink做下简单的介绍:Android和ios都有一种叫做deeplink的功能,简单讲他就像一个判断,当你运行或者点击了唤起deeplink功能的某个控件,然后唤起了deeplink监 ...

  4. Android渲染画面,Android系统图像渲染简介

    原标题:Android系统图像渲染简介 Android系统UI从绘制到显示至屏幕一般为如图过程:先从相应的图片解码获得位图数据放到内存.然后使用图形引擎将位图数据按一定方式,渲染到可用于显示的图形内存 ...

  5. 【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )

    文章目录 一.官方文档 二.Android 命令行工具简介 1.SDK 命令行工具 2.SDK 构建工具 3.SDK 平台工具 4.模拟器工具 5.Jetifier 工具 一.官方文档 Android ...

  6. Android Activity动画属性简介

    Android Activity动画属性简介 在Android当中 设置activity的动画 需要复写 android:windowAnimationStyle这个属性 我们自定义一个动画样式来继承 ...

  7. android 跳转页面出错,Android 页面跳转(无/含有返回结果)

    一.两个页面的xml文件 factivity android:layout_width="match_parent" android:layout_height="wra ...

  8. android 点击跳转到qq,Android应用跳转到手机QQ的方法

    Android应用跳转到手机QQ的方法 发布时间:2020-11-04 17:45:06 来源:亿速云 阅读:106 作者:Leah Android应用跳转到手机QQ的方法?相信很多没有经验的人对此束 ...

  9. Android APP跳转微信小程序和APP跳转支付宝小程序传参

    Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...

最新文章

  1. Mac 安装SecureCRT
  2. jQuery 超屏加载
  3. 思谋科技A轮融资超1亿美元 ,成为最年轻“准独角兽”AI企业
  4. 老牌名校助理教授给出8个建议
  5. 感知机算法的两种表示
  6. HANDLE:句柄的概念
  7. mysql select简单用法
  8. 【LeetCode从零单排】No20.ValidParentheses
  9. 重磅下载!业界首本强化学习应用宝典,阿里核心算法团队联袂打造
  10. 新生代中Eden:S1:S2为什么是8:1:1?
  11. Agile PLM EC Understand the BOM Publishing Process
  12. 在delphi中如何动态建立类的实例
  13. 用python自己做游戏_练习项目20:使用python制作游戏(中)
  14. 【Gym-100085 E】Eve【模拟题】
  15. Axure9 导入元件库
  16. 使用jave进行视频转码
  17. html的坐标怎么表示,经纬度怎样表示
  18. 代理ip按功能分哪几类?
  19. AXD 汇编调试经验,使用及问题
  20. 程序员土豆原创诗四首回顾

热门文章

  1. 高通msm8953平台I2C分析
  2. 微信小程序——剪贴板 的使用
  3. 液相如何改善峰形与提升分离度?【实验室秘籍】
  4. 优化方法——罚函数法
  5. 实现Taro 项目拆分到多个分包(Taro和原生混合开发)
  6. P1258 小车问题(二分法)
  7. VDD、VBAT、VDDA、VREF+区别
  8. oracle sql数据计算精度问题
  9. XSS之xss-labs-level3
  10. 有关FLOPS的定义与计算