Flutter集成Branch.io校验报错:未找到de:// URI Scheme对应意图
问题修复方案
- 修复AndroidManifest.xml语法错误
你的application标签配置行末尾多了一个冗余的>符号,直接删除该无效符号即可。 - 补充MainActivity的exported属性
针对Android 12及以上系统,所有可被外部唤起的Activity必须显式声明可导出属性,修改MainActivity配置:<activity android:name=".MainActivity" android:exported="true" <!-- 新增该行配置 --> android:launchMode="singleTask" <!-- 其余原有属性保持不变 --> > - 调整URI Scheme的intent-filter配置
你当前的配置将scheme和host写在同一个<data>标签内,要求唤起链接必须同时匹配de协议和open主机名,Branch SDK校验时只会匹配de://无主机名的规则,因此会报错,修改为如下配置:<!-- Branch URI Scheme --> <intent-filter> <data android:scheme="de" /> <data android:host="open" /> <!-- 若无需限定主机名可直接删除该行 --> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter> - 补充Flutter端深度链接监听逻辑
原生配置完成后,需要在Flutter层监听Branch返回的深度链接参数,才能实现指定页面跳转:// 初始化Branch后添加会话监听 FlutterBranchSdk.listSession().listen((linkData) { if (linkData.containsKey('~deep_link_path')) { String targetPath = linkData['~deep_link_path']; // 此处写入你自己的页面跳转逻辑,例如通过Navigator跳转到对应页面 } }, onError: (err) { print('深度链接监听出错:$err'); }); - 校验生效
修改完成后卸载设备上的原有应用,重新安装运行,再次调用validateSdkIntegration方法即可看到校验通过日志。
内容的提问来源于stack exchange,提问作者Golam Sarwar Shakil
相关产品推荐
相关产品推荐

