UIApplication.shared.open 仅适用于 https

时间:2021-03-26 12:01:30

标签: swift url uiapplication urlopen

我尝试使用 UIApplication.shared.open 函数打开 url,但我有点困惑,因为它不适用于 www.google.com 而它适用于 https://www.google.com

struct GetIsoCode: View {
    @State var titile = "www.google.com"
    var body: some View {
        Text(titile)
            .onTapGesture {
                let urlS = URL(string:titile)
                if let url = urlS {
                    UIApplication.shared.open(url) { (response) in
                        print(response)
                    }
                }
            }
    }
}

第一个用例:

输入网址:

<块引用>

www.google.com

输出:

<块引用>

无法打开 URL www.google.com: Error Domain=NSOSStatusErrorDomain Code=-50 "invalid input parameters" UserInfo={NSDebugDescription=invalid input parameters, _LSLine=234, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler: ]}

第二个用例:

输入:

<块引用>

https://www.google.com

结果:一切正常。

有人可以向我解释如何从两个链接中显示 google,我已经尝试通过上述方法实现,但还没有结果。

1 个答案:

答案 0 :(得分:2)

文档说:

<块引用>

UIKit 支持许多常见的方案,包括 http、https、tel、 facetime 和 mailto 方案。

使用此方法打开指定的资源。如果指定的网址 方案由另一个应用程序处理,iOS 启动该应用程序并通过 它的网址。 (启动应用程序会将另一个应用程序带到前台。) 如果没有应用程序能够处理指定的方案,则完成 在成功参数设置为 NO 的情况下调用处理程序。

确定是否安装了能够处理 URL,在调用这个之前先调用 canOpenURL: 方法

  1. 字符串“www.google.com”是哪个网址架构
  2. 先调用 canOpenURL,然后再调用 open(url:)
相关问题