用于打开其他应用程序的 canOpenURL - 不适用于模拟器

canOpenURL for opening other Apps - Not working on simulator

我正在尝试从部署目标为 8.1

的应用程序中打开 Yelp

我面临的问题是我的代码没有在模拟器上正确评估。我的设备是 iOS 10.3,它在那里工作正常(Yelp 打开),但我需要能够检查它是否适用于旧版本 iOS 的模拟器!

    let urlStr: String = "yelp://"
    let url = URL(string: urlStr)
    if UIApplication.shared.canOpenURL(url!) {
        print("can open")
        if #available(iOS 10.0, *) {
            print("10")
            UIApplication.shared.open(url!, options: [:], completionHandler: nil)
        } else {
            print("NOT 10")
            UIApplication.shared.openURL(url!)
        }
    }
    else {
        // Can not open URL
        print("can not open url")
    }

在模拟器 (iOS 8.1) 中,以下内容打印到控制台:

can open
NOT 10

然而,这是错误的! Yelp 未安装在模拟器上 - 但如果是这样,print("can not open url") 不会评估吗??

这是我在 info.plist 中的 URLTypes / LSApplicationQueriesSchemes。

我上面的代码有什么问题吗?我如何才能在模拟器上正确测试 Yelp 的打开,我可以在模拟器上对 iOS 的各种版本(从 8.1 开始)进行质量检查?谢谢朋友

它 returns true 因为在你的 URL 方案中,你有一个项目 yelp,基本上当你调用 openURL。更改该项目并再次测试。