You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未知schema时如何从Android浏览器启动第三方应用?

现有实现的遗漏点

你写的Intent URI不符合Android官方规范,核心问题是缺少host位置的占位符:官方要求Intent URI的最小结构是intent:///#Intent;xxx;end,你原来的写法只有intent://#Intent;xxx;end,少了host位的斜杠,导致浏览器无法正确解析协议。
此外只传包名无法匹配大多数应用的Intent过滤器,需要补充启动页对应的action和category参数,修正后的可运行代码如下:

window.open(
  "intent:///#Intent;package=com.google.android.youtube;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;end"
);
<a href="intent:///#Intent;package=com.google.android.youtube;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;end">
  测试链接
</a>

额外注意:Android 11及以上版本要求发起唤起的应用提前在AndroidManifest.xml中配置<queries>标签声明要唤起的目标包名,部分国产浏览器默认会拦截Intent协议唤起,需要单独做兼容适配。

查询已注册Schemes的方法

你补充的adb命令已经是最直接的本地查询方案,还有两种常用实现方式:

  • 如果你能拿到目标应用的APK安装包,直接反编译后查看AndroidManifest.xml里所有带<data android:scheme="">属性的intent-filter节点,即可提取到该应用所有注册的Scheme
  • 如果你需要批量导出当前手机所有已安装应用的Scheme清单,可以运行如下命令直接导出到本地文件:
adb shell dumpsys package r | grep -i scheme > all_app_schemes.txt

内容的提问来源于stack exchange,提问作者dtrott87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:04