Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UIApplication.shared.open仅适用于https_Swift_Url_Uiapplication_Urlopen - Fatal编程技术网

Swift UIApplication.shared.open仅适用于https

Swift UIApplication.shared.open仅适用于https,swift,url,uiapplication,urlopen,Swift,Url,Uiapplication,Urlopen,我试图用UIApplication.shared.open函数打开url,但我有点困惑,因为它不适用于,也适用于 第一个用例: 输入url: www.google.com 输出: 打开URL失败:错误域=NSOSStatusErrorDomain代码=-50“无效输入参数”用户信息={NSDebugDescription=无效输入参数,\u LSLine=234,\u LSFunction=-[\u LSDOpenClient openURL:选项:completionHandler:} 第二个

我试图用UIApplication.shared.open函数打开url,但我有点困惑,因为它不适用于,也适用于

第一个用例:

输入url:

www.google.com

输出:

打开URL失败:错误域=NSOSStatusErrorDomain代码=-50“无效输入参数”用户信息={NSDebugDescription=无效输入参数,\u LSLine=234,\u LSFunction=-[\u LSDOpenClient openURL:选项:completionHandler:}

第二个用例:

输入:

https://www.google.com

结果:效果很好

有人能给我解释一下如何从两个链接中显示google吗?我已经尝试通过上面的方法实现了,但还没有结果。

文档说:

UIKit支持多种常用方案,包括http、https、tel、, facetime和mailto方案

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

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

  • 字符串“www.google.com”是哪个URL方案
  • 在调用open(url:)之前,首先调用canOpenURL

  • 这与SwiftUI无关,因为
    UIApplication
    是一种纯粹的
    UIKit
    类型,您遇到的问题是
    UIApplication
    ,而不是SwiftUI。
    www.google.com
    是一个没有方案的URL<代码>http://www.google.com是一个带有scheme
    http
    的URL<代码>https://www.google.com是一个URL,其方案为https
    openURL()
    要求其URL具有方案。
    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)
                        }
                    }
                }
        }
    }