Genexus 18.4 .Net Android原生应用DeepLink无法触发问题求助
Genexus DeepLink 无法触发应用选择框的排查方案
针对你遇到的DeepLink直接在Chrome打开、无法触发系统“打开方式”提示的问题,可按以下步骤逐一排查:
1. 验证原生应用的系统配置文件
Genexus自动配置可能存在遗漏,需手动检查Android的AndroidManifest.xml或iOS的Info.plist:
- Android:确认包含匹配你的GX Cloud链接的
<intent-filter>,示例配置:<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="apps5.genexus.com" android:pathPrefix="/Idb6fdcb8d4axxxxxxxxxxxxxxxxxxxx/viewtest" /> </intent-filter> - iOS:检查
CFBundleURLTypes配置是否包含对应域名和路径,示例配置:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>https</string> </array> <key>CFBundleURLName</key> <string>你的应用Bundle ID</string> <key>CFBundleURLResourceSpecifiers</key> <array> <dict> <key>CFBundleURLHost</key> <string>apps5.genexus.com</string> <key>CFBundleURLPathPrefix</key> <string>/Idb6fdcb8d4axxxxxxxxxxxxxxxxxxxx/viewtest</string> </dict> </array> </dict> </array>
修改后重新部署应用。
2. 测试系统级DeepLink触发
避开邮件客户端的内置浏览器干扰,直接用系统工具测试:
- Android:使用ADB命令强制触发链接:
adb shell am start -W -a android.intent.action.VIEW -d "https://apps5.genexus.com/Idb6fdcb8d4axxxxxxxxxxxxxxxxxxxx/viewtest.aspx" - iOS:在模拟器的Safari地址栏输入链接,或用Xcode命令:
xcrun simctl openurl booted "https://apps5.genexus.com/Idb6fdcb8d4axxxxxxxxxxxxxxxxxxxx/viewtest.aspx"
如果系统仍不弹出选择框,说明系统配置存在问题;如果弹出,说明是邮件客户端的行为限制。
3. 排查Chrome的链接处理设置
Chrome可能默认接管https链接,需手动配置:
- 打开Chrome的
chrome://settings/handlers页面,检查是否已将你的GX Cloud域名关联到应用; - 若未关联,点击“添加”将域名与应用绑定;若已关联但无效,移除关联后重新测试。
4. 验证App Link/Universal Links的配置(Android 12+/iOS)
- Android:访问
https://apps5.genexus.com/Idb6fdcb8d4axxxxxxxxxxxxxxxxxxxx/.well-known/assetlinks.json,确认文件包含你的应用的SHA-256指纹和包名; - iOS:访问
https://apps5.genexus.com/.well-known/apple-app-site-association,确认文件包含你的应用的Team ID和Bundle ID;
若文件不存在或内容不匹配,需在GX Cloud后台或Genexus项目中补全配置。
5. 检查手动deeplink.handle事件的逻辑
确保事件注册和代码逻辑正确,示例:
event deeplink.handle(&deeplinkInfo) { if &deeplinkInfo.Path == "/viewtest.aspx" { navigate(NewPanel) } }
测试时将应用退到后台,再触发DeepLink,确认事件是否被触发。
6. 确认应用ID一致性
Android的包名、iOS的Bundle ID必须与:
- Genexus项目配置中的应用ID一致;
- Digital Asset Links/Apple App Site Association文件中的ID一致。
内容的提问来源于stack exchange,提问作者Esteban
相关产品推荐
相关产品推荐

