【发布时间】:2017-04-14 20:42:02
【问题描述】:
我正在尝试从部署目标为 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 版本进行 QA(从 8.1 开始)?谢谢朋友。
【问题讨论】:
-
出于好奇 - 调用
openURL后模拟器上会发生什么?此外,如果可能,最好让至少一台设备使用您支持的最低系统版本。 -
iOS 9.x 或 10.x 的模拟器有同样的问题吗?
-
您可以尝试在您的模拟器中执行
Reset Content and Settings,然后运行您的应用程序,看看它是否会给出相同的结果? -
@Losiowaty - 什么都没有发生(尽管什么都不应该发生)。但正如我在问题中提到的,“可以打开”不应该打印到控制台,因为 Yelp 不在模拟器上。
-
@rmaddy - 是的。 2010 年 8 月 9 日,同样的问题仍然存在。
标签: ios swift xcode ios-simulator openurl