为何H5代码可通过URL Scheme唤起APP,直接输入却触发搜索?
为什么地址栏输入Scheme无法唤起APP,而JS跳转可以?
- 核心差异在于浏览器对两种场景的处理逻辑不一样:
- 页面JS跳转(
window.location.href):这是页面主动发起的跳转请求,浏览器会直接解析URL里的mqqapi://协议,只要系统里有注册该协议的APP(比如QQ),就会直接唤起,不会触发搜索。 - 地址栏直接输入:Chrome地址栏会先判断输入内容是不是「浏览器可识别的标准协议/有效URL」。像
mqqapi://这种非通用协议(不是http/https这类浏览器原生支持的),Chrome默认会把它当成搜索关键词,直接走搜索引擎查询,不会尝试唤起APP。
- 页面JS跳转(
- 另外你输入的地址栏内容里,
?后面多了个空格(? src_type),这个空格会让整个URL变成非法格式,也会让浏览器更倾向于把它当成搜索词处理。
内容的提问来源于stack exchange,提问作者Guoyh
相关产品推荐
相关产品推荐

