我觉得很奇怪,虽然canOpenURL(myURL)是假的,而open(myURL)完全重定向到了我想要的应用程序。我在这里做错什么了?
override func viewDidAppear(_ animated: Bool) {
let instagramUrl = URL(string: "instagram://app")!
print(UIApplication.shared.canOpenURL(instagramUrl)) // false
if UIApplication.shared.canOpenURL(instagramUrl) {
UIApplication.shared.open(instagramUrl, options: [:], completionHandler: nil)
} else {
UIApplication.shared.open(URL(string: "http://instagram.com")!, options: [:], completionHandler: nil) // Instagram successfully launched???
// UIApplication.shared.open(instagramUrl, options: [:], completionHandler: nil) // This works too
print("Open failed.") // Open failed.
}
}
慰问:
-canOpenURL:URL失败:“instagram://app”-错误:“此应用不允许查询方案instagram”
[MC]System group.com.apple.configurationprofiles的系统组容器路径是/private/var/containers/Shared/systemgroup/systemgroup.com.apple.configurationprofiles
[MC]读取公共有效用户设置。
我的信息列表如下
最佳答案
您必须将URL方案包含到LSApplicationQueriesSchemes
中,而不是URL本身。
因此,与当前LSApplicationQueriesSchemes
中的所有项不同,您只需要一个值为instagram
的项,它就可以工作了。
关于swift - “canOpenURL”的行为很奇怪……还是我吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51348865/