当 Safari 不是使用 URL 方案的默认浏览器时,从 iOS 14 上的应用程序启动 Safari

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

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

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

要启动默认浏览器,请使用

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

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

你当然可以使用

Back-to-app
功能,但用户体验不会很好。

ios swift google-chrome mobile-safari ios14
2个回答
0
投票

当我将 Safari 设置为默认浏览器时确实如此。但是我把它换成其他浏览器,比如 Chrome 和 Edge,然后它是错误的。

在LSApplicationQueriesSchemes中添加https & http,这是我希望的结果


0
投票

Apple 没有提供任何可以直接启动 Safari 的公共 URL 方案。

我自己没有使用过 Chrome 或 Firefox 方案,但假设它们有效,相比之下,Safari 不能通过这种方式直接通过 URL 访问。

可能有人知道捆绑包可以看到 Safari 是否为此构建,但 Apple 可能会将其用作“私有 API”,应用程序中也禁止使用 Settings.app URL 方案。

(可能有通过“开放”的程序化路径,但对此有了解的人可能会写另一个答案)。


当用户指定默认浏览器时,它就像任何台式机/笔记本电脑操作系统一样。操作系统会将 http: 和 https: URL 发送到默认浏览器(详细来说,可能还有许多其他 URL,如 ftp: 等,以及来自随机方案的默认处理程序:URL)

操作系统启动 Safari.app 会发生这种情况。发生这种情况时,后退应用程序(标签按钮)会出现在状态栏中。

对于开发人员,有几个可用的框架,因此您可以通过 WebKit 和 Safari 服务将 Web 加载事件保留在您的应用程序中。

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