【发布时间】:2016-04-04 02:11:09
【问题描述】:
您可能认为这是一个重复的问题,但事实并非如此,我完全了解 SO 关于 canOpenURL 及其在 iOS 9 上的警告的所有答案,但这是我的问题:
我正在尝试检查我的设备上是否安装了特定应用(均由我开发)。
我已将AppA 上的方案声明为:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.my.company.id</string>
<key>CFBundleURLSchemes</key>
<array>
<string>XYZ</string>
</array>
</dict>
</array>
在另一个应用程序上,AppB 我已在 info.plist 中添加:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>XYZ</string>
</array>
现在,在AppB 中,我正在尝试找出是否像这样安装了AppA:
internal static let appAScheme = "XYZ://"
static func AppAInstalled() -> Bool {
let appAURL = NSURL(string: appAScheme)
return UIApplication.sharedApplication().canOpenURL(appAURL!)
}
它总是返回
-canOpenURL:URL 失败:“XYZ://” - 错误:“此应用不是 允许查询方案XYZ"
但是,如果我尝试从 AppB 打开 AppA,它将毫无问题!
// Works alright
UIApplication.sharedApplication().openURL(appAURL!)
我不知道为什么!
【问题讨论】:
标签: swift ios9 uiapplication custom-url xcode7.2