UIApplication.shared.open(_ url:URL等)没有打开任何东西

时间:2018-10-25 07:28:34

标签: swift uiapplication openurl

我已经在Info.plist文件的LSApplicationQueriesSchemes中添加了“ instagram”,但是在调用以下函数时,它仍然无法打开Safari和instagram:

func openinstagram () {
    let instaurl = URL(fileURLWithPath: "https://www.instagram.com/(myusername)/?hl=de")
    if UIApplication.shared.canOpenURL(instaurl) {
        UIApplication.shared.open(instaurl, options: [:] ) { (sucess) in
            print("url opened")
        }
    }
}

除了日志中的“网址已打开”外,它什么也没告诉我

对此有什么解决方案? 预先谢谢你

2 个答案:

答案 0 :(得分:0)

您使用了错误的API

  • URL(fileURLWithPath用于以/开头的文件系统URL。
  • URL(string用于以方案(https://file://)开头的URL

myusername的字符串插值看起来是错误的(在查询问号前缺少反斜杠和多余的斜杠)。

    if let instaurl = URL(string: "https://www.instagram.com/\(myusername)?hl=de"),
       UIApplication.shared.canOpenURL(instaurl) { ...

答案 1 :(得分:0)

您可以尝试一下。

URL(fileURLWithPath:)用于获取以/

开头的文件

URL(string:)是创建Web网址

func openinstagram () {
    if let instaurl = URL(string: "https://www.instagram.com/(myusername)/?hl=de"),
        UIApplication.shared.canOpenURL(instaurl) {

        if #available(iOS 10.0, *) {
            UIApplication.shared.open(instaurl)
        } else {
            UIApplication.shared.openURL(instaurl)
        }
    }
}