Flutter DeepLink - GoRouter

问题描述 投票:0回答:1

我实现了 go_router 以在我的应用程序中使用深层链接,但对于某些路径,我需要忽略深层链接并在浏览器中打开它们。

例如,当用户单击以下 URL https://example.com/login 时,深层链接可以正常工作并在特定页面上打开我的 Flutter 应用程序。

但是,当用户单击 https://example.com/privacy 时,我需要在默认浏览器中打开此链接,而不是在我的应用程序中打开。

我一直在寻找解决方案,但结果始终相同:链接始终在我的应用程序中打开。

我尝试使用launchUrl包,但结果还是一样:

launchUrl(Uri, 模式:LaunchMode.externalApplication);

我已尝试了所有可用的 LaunchMode 选项,但似乎没有任何效果。

我需要在浏览器应用程序中打开一些路径,在我的应用程序中打开其他路径。

路径是一些示例,我需要将路线图中未指定的所有路径转到网页

我实现了 go_router 库

android flutter deep-linking flutter-go-router
1个回答
0
投票

发布您的 apple-app-site-association 和/或 assetlinks.json 以及讨论您正在使用哪个平台会对您有所帮助。

关于 Flutter 中的深层链接,与 Android 和 iOS 之间存在重要差异,需要理解。 Apple 通过其 apple-app-site-association 中的支持提供了排除某些路径的功能。更多信息可以在他们的文档中查看,其中包含有关如何排除的示例。

在 Android 12 中,所做的更改影响了开发人员将 URL 路由到外部浏览器(即 Web)的能力。如果您已声明您的 Android 应用程序链接 接受

/privacy
,那么 Android 将始终将用户路由回您的应用程序。

您需要在应用程序中处理此路由,或者不在 Android 的资产链接文件中声明

/privacy
的路由。

© www.soinside.com 2019 - 2024. All rights reserved.