MAUI应用间导航问题:Android需配置Data Scheme解决CanOpenAsync返回false
解决MAUI Android端Data Scheme配置问题
步骤1:配置AndroidManifest.xml
打开MAUI项目下的Platforms/Android/AndroidManifest.xml,找到主Activity对应的<activity>标签(通常是MainActivity),添加intent-filter来注册自定义Scheme:
<activity android:name=".MainActivity" ...> <!-- 保留原有配置内容 --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 注册目标Scheme --> <data android:scheme="app2" /> <!-- 匹配你要跳转的Host --> <data android:host="com.companyname.app2" /> </intent-filter> </activity>
步骤2:调整代码逻辑
将验证和跳转的Uri统一为带Host的格式,和配置保持一致:
private async void GoApp2Clicked(object sender, EventArgs e) { string targetUri = "app2://com.companyname.app2"; bool supportsUri = await Launcher.Default.CanOpenAsync(targetUri); if (supportsUri) await Launcher.Default.OpenAsync(targetUri); }
关键注意点
- 确保目标应用(App2)也已配置相同的Scheme和Host,且已安装在测试设备/模拟器上
- 修改
AndroidManifest.xml后需要重新部署Android项目 - 模拟器测试时,两个应用必须部署到同一台模拟器中
内容的提问来源于stack exchange,提问作者Arun VB
相关产品推荐
相关产品推荐

