DeepLink 是什么
DeepLink 从字面意思可以理解为「深度链接」,那么 DeepLink 在 Android 开发中有什么作用呢?简单来说,可以用这种技术实现 web 页面点击一个链接跳转至 APP 指定的某一页面。这种技术的好处是可以为我们的 APP 导流。举个例子,我们公司是做一个房产平台的,如果用户在浏览器上看到新房列表的信息,并且手机上已经安装了应用的话,便可以直接跳转到 APP 的房产列表页面,原生页面在体验和功能上当然是要比 H5 页面强多了。如果此时没有安装应用可以直接跳转至下一个 H5 页面或者提示用户跳转到应用市场下载应用。
如何使用 DeepLink
我们的应用使用的是 Scheme 的方式来实现的,废话不多说,来看看正确的使用姿势。以我自己的项目为例。我们需要在清单文件 manifest 中添加 intent-filter。
|
|
在对应 Activity 中的代码如下
|
|
中间省去了业务逻辑代码,看到这里大家可能不太明白 Activiy 中的代码是什么意思,这里要简单的说一下 URL Scheme 协议的格式。
URL Scheme 协议格式
以我自己项目中定的协议为例,一个完整的 URL Schema 协议格式:
openxxx://app.xxx.com/newhouselist?city_id=xxxx&refer=xxxx
上面包含了 scheme、host、path、query。
- openxxx 代表该 Scheme 协议名称(scheme)
- app.xxx.com 代表 Scheme 作用于哪个地址域(host)
- newhouselist 代表 Scheme 指定的页面(path)
- city_id 代表传递的参数(query)
然后我们可以在 Activity 中获取 path 再跳转至对应的页面,并且可以通过 getQueryParameter() 方法来获取参数来传递给要跳转的页面。