我实现了 go_router 以在我的应用程序中使用深层链接,但对于某些路径,我需要忽略深层链接并在浏览器中打开它们。
例如,当用户单击以下 URL https://example.com/login 时,深层链接可以正常工作并在特定页面上打开我的 Flutter 应用程序。
但是,当用户单击 https://example.com/privacy 时,我需要在默认浏览器中打开此链接,而不是在我的应用程序中打开。
我一直在寻找解决方案,但结果始终相同:链接始终在我的应用程序中打开。
我尝试使用launchUrl包,但结果还是一样:
launchUrl(Uri, 模式:LaunchMode.externalApplication);
我已尝试了所有可用的 LaunchMode 选项,但似乎没有任何效果。
我需要在浏览器应用程序中打开一些路径,在我的应用程序中打开其他路径。
路径是一些示例,我需要将路线图中未指定的所有路径转到网页
我实现了 go_router 库
发布您的 apple-app-site-association 和/或 assetlinks.json 以及讨论您正在使用哪个平台会对您有所帮助。
关于 Flutter 中的深层链接,与 Android 和 iOS 之间存在重要差异,需要理解。 Apple 通过其 apple-app-site-association 中的支持提供了排除某些路径的功能。更多信息可以在他们的文档中查看,其中包含有关如何排除的示例。
在 Android 12 中,所做的更改影响了开发人员将 URL 路由到外部浏览器(即 Web)的能力。如果您已声明您的 Android 应用程序链接 接受
/privacy
,那么 Android 将始终将用户路由回您的应用程序。
您需要在应用程序中处理此路由,或者不在 Android 的资产链接文件中声明
/privacy
的路由。