【发布时间】:2017-03-12 18:01:41
【问题描述】:
在我的应用程序中,我有一个警报视图,可以选择打开 IOS 设置应用程序的 iCloud 部分。这以前适用于 IOS8/9 (Swift 2):
let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
UIApplication.sharedApplication().openURL(url)
}
在 IOS10 (Swift 3) 中它不再工作了,因为 openURL() 已被弃用。我将代码更改为以下内容:
let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
if #available(iOS 10, *) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
} else {
UIApplication.shared.openURL(url)
}
}
但是上面的代码不适用于IOS10。 UIApplication.shared.canOpenURL(url) 返回 false。我必须进行哪些更改才能使其在 IOS10 中再次正常工作?
【问题讨论】:
-
prefs:自 iOS 10 起将无法使用。请使用UIApplicationOpenSettingsURLString -
UIApplicationOpenSettingsURLString 将在 IOS 设置应用程序中打开我的应用程序部分。那不是我想要的。我需要在“设置”应用中打开 iCloud 部分。
-
prefs 是一个私有 API...Apple 建议您使用 UIApplicationOpenSettingsURLString ....打开应用程序的设置
-
再次:我不想打开我自己的应用程序的设置!我想打开 iCloud 设置部分。
标签: swift3 settings icloud ios10 openurl