您可能認爲這是一個重複的問題,但事實並非如此,我完全瞭解所有關於canOpenURL
及其iOS9注意事項的答案,但這裏是我的問題:此應用不允許查詢方案XYZ://
我試圖檢查一個特定的應用程序是否安裝在我的設備上(都由我開發)。 我已經宣佈計劃在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: failed for URL: "XYZ://" - error: "This app is not allowed to query for scheme XYZ"
如何,如果我試圖從AppB
開放AppA
它將工作沒有問題!
// Works alright
UIApplication.sharedApplication().openURL(appAURL!)
我不明白爲什麼!