我有两个应用程序需要通过深链接进行通信:一个Flutter Web应用和一个Flutter Mobile应用。
基本上,流程需要是我点击在移动浏览器上运行的Web应用程序中的一个按钮,然后应该触发移动应用程序启动。
我遵循了设置深度链接的指定说明,并有2个观察结果:
- 一切都在Android上完美运行。
- 如果我点击任何其他iOS应用程序(日历,MS团队等)的链接,它会工作得很好。这让我相信深度链接已经正确设置。
我面临的问题是,我需要从我的WebApp获得链接工作。
我使用Flutter url_launcher包来打开带有launch()函数的链接。
有没有人有任何见解,我需要做什么,以获得从iOS浏览器的深层链接工作?任何帮助都会很感激。(
我用来启动url的WebApp中的Flutter代码:
final urlToLaunch = Uri.encodeFull(
'https://url-to-my-app'
);
await launch(
urlToLaunch,
universalLinksOnly: true,
);
我没有分享太多的代码,因为我不确定哪些是有用的。
Deep link
使用这个flutter包uni_links
尝试使用deepLink,即使用自定义方案myownscheme://
代替https://
await launch(
'myownscheme://example.com/path?q1=v1&q2=v2',
universalLinksOnly: false,
);
最终的解决方案是使用Firebase动态链接.
动态链接是智能url,允许您发送现有的和潜在用户在你的iOS或Android应用程序中的任何位置在应用安装过程中存活下来,这样即使是新用户也能看到内容当他们第一次打开应用程序时,他们在寻找什么。动态链接永远免费,无论大小。
关于动态链接的更多信息请查看这篇文章https://levelup.gitconnected.com/handling-dynamic-links-using-flutter-and-firebase-2be5f6a85e1f