百度浏览器默认禁用外部协议调用,导致无法唤起支付宝或微信app完成支付;需手动开启“打开外部应用”权限,并启用兼容模式或修改about:config启用external-scheme,前端还需针对百度ua做中转页封装。

百度浏览器在访问电商或支付页面时,无法跳转至支付宝App或微信App完成支付,页面卡在加载状态或提示“当前浏览器暂不支持唤起”,这个问题直接影响用户付款流程。
确认浏览器是否禁用外部协议调用
打开百度浏览器右上角「菜单」→「设置」→「隐私与安全」→「网站设置」→「其他权限」→「打开外部应用」,确保该开关已开启。
这一步必须手动开启,百度浏览器默认关闭此权限,关闭状态下所有 alipays:// 或 weixin:// 协议均被拦截,且无任何提示。
强制启用兼容模式(针对支付宝H5支付失败)
方法一:进入「设置」→「基本」→「浏览模式」→选择「默认使用兼容模式(IE和渲染)」。
方法二:若方法一无效,可尝试在地址栏输入 about:config → 搜索 enable-external-scheme → 将其值设为 true。
【注意:修改 about:config 后需完全退出百度浏览器(包括后台进程),再重新启动才生效】
绕过百度浏览器限制的前端适配方案
第一步:判断当前 UA 是否为百度浏览器(含 Android/iOS):
if (navigator.userAgent.indexOf('BaiduHD') > -1 || navigator.userAgent.indexOf('baiduboxapp') > -1 || navigator.userAgent.indexOf('BaiduBrowser') > -1) { … }
第二步:对支付宝预下单返回的 alipays:// 链接做二次封装——安卓端拼接 ds.alipay.com 跳转中转页,iOS端改用 render.alipay.com 中转。
第三步:中转页 URL 必须对原始 scheme 做 encodeURIComponent,否则 iOS 百度浏览器会因特殊字符截断导致唤起失败。
这一步操作起来很简单,直接把封装好的中转链接赋给 window.location.href 即可,无需额外 SDK。











