移动端深度链接原理(DeepLink)_deeplink 原理-程序员宅基地

技术标签: 大前端  唤醒应用  深度链接  DeepLink  IOS  Android  

DeepLink简介

在普通Web应用中,DeepLink是我们习以为常的技术,是指通过链接直接定位到指定的资源页面。
URI实例:http://www.test.com/xxx.html
比如可以通过网址直接访问文章。

在移动端,DeepLink是指通过链接直接定位到App的具体位置,而不仅仅是简单唤起APP,也叫做移动端深度链接。
URI实例:myapp://test/spec?param1=p1&param2=p2
比如我们点击别人分享的h5界面,提示跳转到相应APP界面。

  • 移动端深度链接,本质上是使用URI的Schema,移动操作系统提供解析schema的能力,判断schema属于哪个app,唤起并将参数传递给App。
app2://sku/123
APP1
APP2

以上图为例:

  1. APP1必须支持,如微信屏蔽了很多schema,一般手机浏览器不会屏蔽shcema。
  2. APP2必须支持,APP也需要开发,让系统知道其对应的schema,并解析参数定位到具体位置。

Android深度链接

  • 链接唤起APP顺序
    1.打开用户指定的首选APP(如果用户指定了URI对应的APP)。
    2.打开处理URI的唯一APP。
    3.对话框中选择相应的APP(URI对应多个APP的情况)

  • 指定APP对应的URI Schema

      <activity
          android: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" />
              <!-- 解析以"http://www.example.com/gizmos”开头的链接 -->
              <data android:scheme="http"
                    android:host="www.example.com"
                    android:pathPrefix="/gizmos" />
              <!-- 注意: 必须有"/"前缀 -->
          </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" />
              <!-- 解析以 "myapp://spec”开头的链接 -->
              <data android:scheme="myapp"
                    android:host="spec" />
          </intent-filter>
      </activity>
    
    
    • 处理URI链接及参数
    //创建Activity时便处理uri,以提升响应速度,获得好的体验。
    //可以集中式处理所有的uri的转发
    @Override
    public void onCreate(Bundle savedInstanceState) {
          
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        Intent intent = getIntent();
        String action = intent.getAction();
        //获取uri
        Uri data = intent.getData();
    }
    
  • 体验建议:
    1.直接跳转到目标位置,不要登陆,不要间接页面,可以后续交互中提示用户。可以参考First Click Free的体验建议。
    2.遵循向后和向上导航体验设计,与用户通过向后链接进入该位置的体验保持一致。

Deferred DeepLink(延迟深度连接)

当移动设备没有安装对应的APP时,普通的深度链接就无法唤起APP。
延迟深度链接的效果是:点击URI->下载安装文件->安装->唤起APP->定位到指定位置。

相关技术

App Link (Android)
Custom URL Scheme (IOS)
Universal Links (IOS)

常用APP的Schema

微信:weixin://
京东:openapp.jdmoble://
腾讯微博:TencentWeibo://
淘宝:taobao://
支付宝:alipay://
微博:sinaweibo://
百度地图:baidumap://
美团:imeituan://
网易公开课:ntesopen://

作者:铁马-IHorse
邮箱:[email protected]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40094522/article/details/87666254

智能推荐

(前端)工作总结 2_"class=\"widget-header"-程序员宅基地

文章浏览阅读6.2k次,点赞4次,收藏16次。erp系统所涉及到的主要框架 ace admin 地址:http://ace.jeka.by/右侧隐藏按钮.net 控件 控制一行显示4个,每个label属性display : inline-block 设置成固定宽度 80,外侧div设置min-width:140px 高度随label个数自动增加。注意:设置成table样式的话 checkbox 与 label文本产生高度差 不在同一个..._"class=\"widget-header"

[Opengl]OpenGL图形编程项目实战1-4章代码_opengl项目实战-程序员宅基地

文章浏览阅读4.3k次,点赞10次,收藏50次。目录第一章 计算机图形学概论第二章 图形变换第三章 图形建模绘制二维几何体绘制奥运五环运行环境:系统:macOSBigSur11.0.1macOS Big Sur 11.0.1macOSBigSur11.0.1IDE:Xcode Version12.2(12B45b)Xcode\ Version 12.2 (12B45b)Xcode Version12.2(12B45b)采用的OpenGL第三方库:GLUTGLUTGLUT第一章 计算机图形学概论调用OpenGL提供的茶壶、_opengl项目实战

python语法元素+温度转换实例_python实现温度转换(1) 输入输出的摄氏度采用大写字母c开头,温度可以是整数或小数-程序员宅基地

文章浏览阅读833次。一、程序的格式框架Python采用严格的“缩进”(即:tab键)来表示程序的格式框架,即表明程序的包含和层次关系。二、注释是程序编写过程中,程序员在代码中加入的一行或多行星系,用来对该段、该函数的说明,提高代码的可读性。注释一般采用英文说明,也可用中文说明。注释部分会被编译器忽略,不被执行。注释的表示方法:单行注释以为#开头,多行注释采用’’’(3个单引号)开头和结尾。注释主要的3个用..._python实现温度转换(1) 输入输出的摄氏度采用大写字母c开头,温度可以是整数或小数

python中选择结构_Python中选择结构通过什么语句实现_后端开发-程序员宅基地

文章浏览阅读207次。Python代码的单行注释使用什么符号_后端开发Python代码的单行注释使用井号“#”,井号表示单行注释的开始,跟在“#”号后面直到这行结束为止的代码都将被解释器忽略,使用方法是在Python程序中将井号放在需要注释的内容之前即可。 Python中选择结构通过什么语句实现Python中的选择结构语句是 if elif else。Python用缩进代替了Java/C/C++/C#中常用的大括号{}..._9.[判断题]语句:putchar('\n');表示输出一个换行符。

python用pip安装numpy错误_科学网-安装numpy-胡涛的博文-程序员宅基地

文章浏览阅读450次。下载numpy.1.11.2.zip安装包,上传到集群,使用python2.7来安装python setup.py install出现报错:SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.安装python-devpip install python-devDEPR..._error: no matching distribution found for python-devel

计算混响时间的意义_混响是什么意思,混响时间计算公式汇总,混响器的-程序员宅基地

文章浏览阅读1.4k次。混响是什么意思,混响时间计算公式汇总,混响器的作用是什么音乐设备一波接着一波,层出不穷地出现在我们的生活当中,比如MP3、随身听、音响、功放等等,让我们有些目不暇接了,也正是他们的存在,混响是什么意思,混响时间计算公式汇总,混响器的作用是什么音乐设备一波接着一波,层出不穷地出现在我们的生活当中,比如MP3、随身听、音响、功放等等,让我们有些目不暇接了,也正是他们的存在,让我们的精神世界和娱乐生活变..._混响时间与回声消除

随便推点

关于baserecyclerviewadapterhelper同时设置emptyview和header_baserecyclerviewadapterhelper:4.0.0-beta02 显示empty-程序员宅基地

文章浏览阅读3k次。默认情况下无数据时只显示emptyview。在recyclerView.setAdapter(adapter)之前调用adapter.setHeaderAndEmpty(true);adapter.setHeaderFooterEmpty(true,true);_baserecyclerviewadapterhelper:4.0.0-beta02 显示emptyview

AppFuse搭建本地邮件服务器_fuse客户端服务器-程序员宅基地

文章浏览阅读1.3k次。邮件服务器选用apache-james-2.3.2,官网http://james.apache.org/下载解压即可;运行\james-2.3.2\bin\run.bat,出现如下界面:Text代码 D:\Program Files\james-2.3.2\bin>run.bat Using PHOENIX_HOME: D:\Program File_fuse客户端服务器

栈应用之简易计算器算法的原理及实现(C语言)_c语言计算器原理-程序员宅基地

文章浏览阅读8.5k次,点赞12次,收藏74次。1.后缀表达式a * b上面表达式称为中缀表达式,其特点是操作符位于中间位置(仅一个操作符)。a b *上面表达式称为后缀表达式,其特点是操作符位于后面位置(仅一个操作符)。计算器算法的原理是将中缀表达式转换为后缀表达式,然后进行计算。我们在下一章节对中缀转后缀进行介绍。表达式:6*(5+(2+3)*8+3)其后缀表达式为:6 5 2 3 +_c语言计算器原理

linux多路径键盘重启,linux多路径连接iScsi存储_重启自动连接-程序员宅基地

文章浏览阅读272次。如果不是开机启动,即3和5是off,需要改成开机启动#chkconfig iscsi --level 35 on#chkconfig iscsid --level 35 on4.启动iSCSI服务,查看服务状态# service iscsi start## service iscsi status5.修改配置文件# vim /etc/iscsi/iscsid.confnode.startup=au..._linux 取消 iscsi 自动重新连接

模拟ls -l命令简易代码demo_ls -l demo-程序员宅基地

文章浏览阅读773次。话不多说 上代码:/************************************************************************* > File Name: ls-l.c > Author: > Mail: > Created Time: Wed 08 Mar 2017 05:32:08 AM PST *********************_ls -l demo

云服务器使用入门_程序员怎么使用自己的云服务器-程序员宅基地

文章浏览阅读374次。云服务器使用入门学习目标背景介绍基本操作总结学习目标掌握云服务器使用的基本方法。背景介绍当前市场上对程序员的基本需求之一就是能够使用服务器进行开发。在绝大多数公司中,我们都会使用Centos系统(Linux发行版之一)进行开发,因为它是被验证的最稳定的企业级开发服务器。下面我们将学习一些简单的命令,来开启我们Centos学习之旅。基本操作假设你已经通过运维人员开通了服务器,并获得了root用户权限(在公司中,你可能得不到这么高的权限),需要在终端中输入这些命令。使用ssh命令登陆服务器:s_程序员怎么使用自己的云服务器

推荐文章

热门文章

相关标签