【问题标题】:Launch Safari from app on iOS 14 when Safari is not the default browser using the scheme of the URL当 Safari 不是使用 URL 方案的默认浏览器时,从 iOS 14 上的应用程序启动 Safari
【发布时间】:2021-01-05 02:08:34
【问题描述】:

在 iOS 14 中,Apple 推出了将任何浏览器设置为默认浏览器的功能,这是一个不错的功能。

如果您从浏览器启动本地 iOS 应用程序以执行某些操作,然后将控件留给浏览器,则您必须在 iOS 上显式启动该特定浏览器。

要启动默认浏览器,请使用https://example.com。如果用户没有使用默认浏览器,不同的供应商已经注册了scheme来启动它们,所以如果浏览器是chrome,你使用googlechromes://example.com,如果是firefox,使用firefox://example.com

我找不到如何使用 safari 方案为 safari 执行此操作?

您当然可以使用Back-to-app 功能,但用户体验不会很好。

【问题讨论】:

  • 我在另一篇文章中找到了一个建议,但它有点 hacky。 stackoverflow.com/questions/57495315/…
  • 该建议是针对 macOS 的,由于没有越狱的 iOS 上缺少 shell,它无法在 iOS 上运行

标签: ios swift google-chrome mobile-safari ios14


【解决方案1】:

似乎“强迫”打开链接

UIApplication.shared.open(url, options: [:], completionHandler: nil)

也会在其他浏览器上打开链接,如果 URL 损坏,则存在崩溃的风险。 到目前为止,我也在使用 canOpenURL,所以现在需要在开发过程中检查,如果设备有其他浏览器,希望能正常工作。

【讨论】:

    【解决方案2】:

    当我将 Safari 设置为默认浏览器时确实如此。但是我换成其他浏览器比如Chrome和Edge,那就是假的了。

    在 LSApplicationQueriesSchemes 中加入 https & http,是我希望的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多