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 | <intent-filter> |
下面链接能打开:
1 | myapp://product/detail?id=123 |
查找Deep Link
在Android系统中,应用需要在AndroidManifest.xml文件中声明它们能处理的Deep Link。
因此,我们可以通过使用jadx等反编译工具对目标APK进行反编译,在反编译后的AndroidManifest.xml文件中搜索关键字:”android:scheme”
一般搜索结果所在的data标签部分,就包括了Deep Link Url所需的必要组成部分:
- scheme: oversecured,
- host: ovaa
转换成url就是:oversecured://ovaa
DeepLink加载任意URL
https://winhahah.github.io/2026/11/08/Android/020DeepLink介绍/
川公网安备51010702042859号