Android配置wc协议Deep Link后扫码无响应,求排查配置遗漏项
wc 自定义 Scheme Deep Link 无响应的排查修正 - 最核心的遗漏配置:Android 11(API 30)及以上版本对自定义Scheme的外部应用可见性做了强制限制,仅在Activity的IntentFilter里声明处理
wc链接,系统不会让其他应用感知到你的应用可以响应这类链接,需要在AndroidManifest.xml中与<application>标签同级的位置,补充queries声明,示例配置:<queries> <intent> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="wc" /> </intent> </queries> - 扫描端逻辑差异排查:多数系统自带相机应用识别二维码内容后,仅会将内容作为纯文本弹窗展示,不会主动把非http/https前缀的文本当成可跳转的Deep Link发起隐式Intent。可以直接通过ADB命令模拟外部跳转,验证你的IntentFilter配置是否生效:
执行命令:
如果执行命令可以正常拉起应用,说明Manifest的IntentFilter基础配置没有问题,问题出在扫描端没有主动触发跳转。adb shell am start -a android.intent.action.VIEW -d "wc:1a15e8b5-8470-47fa-985f-cf11b4c89067@1?bridge=https%3A%2F%2Fbridge.walletconnect.org&key=f92fb2ed74d628a6a286e416e4df2fbfa88d58e6826007c021b9f5920567cdd5" - 匹配规则说明:WalletConnect的
wc链接属于不透明URI结构(没有//分隔的authority部分),仅通过android:scheme="wc"即可完成全链路匹配,不需要额外配置host、path规则,避免因为规则配置错误导致匹配失效。 - 启动模式适配:当前MainActivity设置为
singleTask启动模式,应用已在后台运行时,跳转的新Intent不会触发onCreate()回调,而是会走到onNewIntent()方法,需要在该回调中补充链接参数的解析逻辑,避免应用被拉起后无法获取到对应的WalletConnect连接参数。
内容的提问来源于stack exchange,提问作者Lena Bru
相关产品推荐
相关产品推荐

