目前我们的 Flutter 应用和深层链接(或应用链接和通用链接)存在问题。在 iOS 上一切正常,但在 Android 上,我们在某些链接上获得了无限循环。
该应用程序可以通过深层链接打开,我们可以根据这些链接显示内容(我们正在使用包uni_links2)。但是,我们在应用程序中的传出链接存在很大问题。
我们的应用程序有一个详细信息页面,此处显示具有相同域的链接,但它们应该在浏览器中打开,而不是在应用程序中。这些链接指向我们无法在应用程序中处理的内容。
这些链接应该在应用程序中从深层链接打开:
应该在浏览器中打开这样的 url:
AndroidManifest.xml
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="ourdomain.com" />
<data android:scheme="http" android:host="www.ourdomain.com" />
<data android:scheme="https" />
</intent-filter>
使用url_launcher包我可以打开 url,但它们直接被视为深层链接并在我们自己的应用程序中再次打开。我也尝试了android_intent,它在将 Chrome 定义为默认意图时工作。
AndroidIntent intent = AndroidIntent(
action: 'action_view',
data: url,
package: 'com.android.chrome',
);
await intent.launch();
但我不能保证用户安装了 Chrome。
目前我不知道如何解决这个问题。我所知道的是,我可以将整个域或路径指定为架构。不幸的是,我不能排除特定的路径。另外,我不知道如何指定链接应该在浏览器中打开,而不是在我们的应用程序中。
你知道我该如何解决这个问题吗?提前致谢!