"canOpenURL" 表现得很奇怪……我是吗?
"canOpenURL" is acting weird... or am I?
我觉得很奇怪,虽然 canOpenURL(myURL) 是 false 而 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" - 错误:"This app is not allowed to query for scheme instagram"
[MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是 /private/var/containers/Shared/SystemGroup/systemgroup。com.apple.configurationprofiles
[MC] 从 public 有效的用户设置中读取。
我的Info.plist如下
您必须将您的 URL 方案 包含在 LSApplicationQueriesSchemes
中,而不是 URL 本身。
因此,您不需要当前 LSApplicationQueriesSchemes
中的所有项目,您只需要 一个 值 instagram
的项目即可。
我觉得很奇怪,虽然 canOpenURL(myURL) 是 false 而 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" - 错误:"This app is not allowed to query for scheme instagram"
[MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是 /private/var/containers/Shared/SystemGroup/systemgroup。com.apple.configurationprofiles
[MC] 从 public 有效的用户设置中读取。
我的Info.plist如下
您必须将您的 URL 方案 包含在 LSApplicationQueriesSchemes
中,而不是 URL 本身。
因此,您不需要当前 LSApplicationQueriesSchemes
中的所有项目,您只需要 一个 值 instagram
的项目即可。