【问题标题】:Redirect from Flutter Web App in Mobile Browser(Safari, Chrome on iOS) to Mobile App从移动浏览器(Safari、iOS 上的 Chrome)中的 Flutter Web 应用重定向到移动应用
【发布时间】:2021-10-29 16:02:58
【问题描述】:

我有两个应用需要通过深层链接进行通信: iOS 上的 Flutter Web 应用和 Flutter 移动应用。

基本上,流程需要是我在移动浏览器上运行的 Web 应用程序中单击一个按钮,然后应该触发移动应用程序启动。

我已按照指定的说明设置深层链接并有 2 个观察结果:

  1. 在 Android 上一切正常。
  2. 如果我点击任何其他 iOS 应用程序(日历、MS Teams 等)中的链接,它就可以正常工作。 这让我相信深层链接已正确设置。

我面临的问题是我需要从我的 WebApp 获取链接才能工作。

我正在使用 Flutter 的 url_launcher 包打开带有 launch() 函数的链接。

有没有人知道我需要做什么才能让深度链接在 iOS 浏览器中正常工作?任何帮助,将不胜感激。 :(

我用来启动 url 的 WebApp 中的 Flutter 代码:

final urlToLaunch = Uri.encodeFull(
    'https://url-to-my-app'
);
await launch(
  urlToLaunch,
  universalLinksOnly: true,
);

我没有分享太多代码,因为我不确定什么会有用。

【问题讨论】:

  • 那么当您从 WebApp 中单击链接时会发生什么?
  • 在 Safari 上:完全没有。在 Chrome 上:重定向到我的其他网络应用程序,该应用程序与我的移动应用程序共享 URL。需要它来优先执行深层链接。

标签: ios flutter google-chrome safari flutter-web


【解决方案1】:

最终的解决方案是使用 Firebase 动态链接

动态链接是智能 URL,可让您发送现有的和 潜在用户到您的 iOS 或 Android 应用程序中的任何位置。他们 在应用安装过程中幸存下来,因此即使是新用户也能看到内容 他们正在寻找第一次打开应用程序的时间。动态的 链接永远免费,适用于任何规模。

有关动态链接的更多信息,请查看本文 https://levelup.gitconnected.com/handling-dynamic-links-using-flutter-and-firebase-2be5f6a85e1f

【讨论】:

    【解决方案2】:

    Deep link

    使用这个flutter包uni_links

    尝试使用 deepLink 即代替 https:// 使用自定义方案 myownscheme://

    await launch(
     'myownscheme://example.com/path?q1=v1&q2=v2',
      universalLinksOnly: false,
    );
    

    【讨论】:

      猜你喜欢
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      • 1970-01-01
      相关资源
      最近更新 更多