DeepLink加载任意URL

DeepLink是一种允许应用程序通过URL直接响应特定页面或功能的技术。这是通过操作系统和应用程序之间的一种约定来实现的。

DeepLink结构:

1
scheme://host[:port]/path?query#fragment
部分 说明 示例
scheme 协议头,自定义或 https myapp / https
host 域名或逻辑模块 shop.example.com
port 端口(可选) 8080
path 页面/资源路径,标识“去哪” /product/123
query 业务参数,标识“带什么状态” from=share&coupon=10
fragment 锚点/子视图(可选) review

在 Android 中,当安装一个应用程序时,该应用程序的 manifest 文件(AndroidManifest.xml)会注册到系统中。这个文件包含了该应用程序的所有组件信息,包括 activities、services、broadcast、receivers 等。对于 deep link,开发者可以在 manifest 文件中定义一个或多个 intent filters,这些 intent filters 定义了哪些 URL 可以启动哪些 activities

当用户点击一个符合某个应用程序 intent filter 规则的 URL 时,Android 系统就会启动该应用程序的对应 activity。具体的规则是通过 intent filter 中的 data 元素来定义的,这个元素可以指定 URL 的 scheme、host、path 等信息。如果 URL 符合这些规则,那么就会启动对应的 activity。

Android Deep Link(深层链接)是一种特殊的链接协议,主要用于在应用程序之间导航和交互,使用 Deep Link 可以从一个APP跳转到另一个APP中相应的页面,实现APP间的无缝跳转。

1
2
3
4
5
6
7
8
9
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="product"
android:pathPrefix="/detail" />
</intent-filter>

下面链接能打开:

1
2
myapp://product/detail?id=123
myapp://product/detail/999?from=push

查找Deep Link

在Android系统中,应用需要在AndroidManifest.xml文件中声明它们能处理的Deep Link。
因此,我们可以通过使用jadx等反编译工具对目标APK进行反编译,在反编译后的AndroidManifest.xml文件中搜索关键字:”android:scheme”

一般搜索结果所在的data标签部分,就包括了Deep Link Url所需的必要组成部分:

  • scheme: oversecured,
  • host: ovaa
    转换成url就是:oversecured://ovaa
作者

纹云

发布于

2026-11-08

更新于

2026-11-08

许可协议

豫ICP备2023004969号-2 | 公安备案 川公网安备51010702042859号