Android Instant App自定义Scheme跳转报UNKNOWN_URL_SCHEME是否为预期行为
结论
该场景下自定义Scheme跳转失效属于Android Instant App的完全预期行为,核心原因如下:
- 自定义Scheme的跳转逻辑依赖系统级别的组件注册:只有正式安装到设备上的应用,其Manifest中声明的自定义Scheme intent-filter才会被系统PackageManager扫描并录入全局Intent路由表,跳转时系统才能匹配到对应的
CustomSchemeHandlingActivity完成拉起。 - Android Instant App本身明确不支持自定义Scheme:免安装应用运行在临时沙箱环境中,不会在系统层面做全局组件注册,且官方规则限制免安装应用的intent-filter仅支持
http/https类型的Scheme(即必须通过App Links形式实现跳转),自定义Scheme的声明不会被系统识别。 - 你观察到的
net:UNKNOWN_URL_SCHEME错误是典型的未匹配到路由的表现:浏览器发起自定义Scheme跳转请求时,系统全局路由表无匹配记录,就会将错误返回给浏览器抛出。
适配方案
如果需要支持Instant App场景的跳转,可对现有逻辑做如下调整:
- 将站点跳转目标从自定义Scheme修改为你站点下的HTTPS链接,格式参考
https://你的域名/their_application_id - 为该HTTPS链接配置App Links关联规则,关联到集成SDK的应用(同时覆盖已安装版和Instant版)
调整后系统跳转时即可识别到对应免安装应用的Activity,直接完成拉起不会触发浏览器报错。
内容的提问来源于stack exchange,提问作者Arrow Cen
相关产品推荐
相关产品推荐

