iOS9:深度链接到 iCloud 设置
iOS 9: Deeplink to iCloud Settings
这是我的问题:我正在开发一个使用 CloudKit 的应用程序。我需要处理用户未在设备上登录 iCloud 的情况。我想将他们发送到 iCloud 设置,并提醒他们需要为我的应用程序打开 iCloud 数据。我正在使用 NSFileManager.defaultManager().ubiquityIdentityToken
来决定是否需要打开用户的 iCloud 设置。 问题是,我想不通。设备的 iCloud 设置的 URL 是什么?我做了很多研究,知道我不想UIApplicationOpenSettingsURLString
。这将打开应用程序的设置,而不是设备。 iOS 9 的新安全功能并没有让这变得更容易,我认为我已经正确设置了这些功能:
您可以启动“设置”应用的 iCloud 部分。我已经在 iOS 9.3 和 10.2 上进行了测试。
步骤如下:
- 从项目 Settings/Info/URL 类型中向您的应用程序添加一个新的 URL 方案。
现在,您可以使用此代码打开 Settings/iCloud 应用程序。
let iCloudURL = URL(string: "App-prefs:root=CASTLE")
if let settingsURL = iCloudURL {
UIApplication.shared.openURL(settingsURL)
}
iOS 10.* 的注意事项:openURL
方法实际上已弃用,您应该使用带有完成处理程序的打开方法:
open(_ url: URL,
options: [String : Any] = [:],
completionHandler completion: ((Bool) -> Void)? = nil)
参考资料
- Opening the Settings app from another app
- https://apple.stackexchange.com/questions/42915/complete-documentation-of-the-ios-settings-apps-url-scheme
这是我的问题:我正在开发一个使用 CloudKit 的应用程序。我需要处理用户未在设备上登录 iCloud 的情况。我想将他们发送到 iCloud 设置,并提醒他们需要为我的应用程序打开 iCloud 数据。我正在使用 NSFileManager.defaultManager().ubiquityIdentityToken
来决定是否需要打开用户的 iCloud 设置。 问题是,我想不通。设备的 iCloud 设置的 URL 是什么?我做了很多研究,知道我不想UIApplicationOpenSettingsURLString
。这将打开应用程序的设置,而不是设备。 iOS 9 的新安全功能并没有让这变得更容易,我认为我已经正确设置了这些功能:
您可以启动“设置”应用的 iCloud 部分。我已经在 iOS 9.3 和 10.2 上进行了测试。
步骤如下:
- 从项目 Settings/Info/URL 类型中向您的应用程序添加一个新的 URL 方案。
现在,您可以使用此代码打开 Settings/iCloud 应用程序。
let iCloudURL = URL(string: "App-prefs:root=CASTLE") if let settingsURL = iCloudURL { UIApplication.shared.openURL(settingsURL) }
iOS 10.* 的注意事项:openURL
方法实际上已弃用,您应该使用带有完成处理程序的打开方法:
open(_ url: URL,
options: [String : Any] = [:],
completionHandler completion: ((Bool) -> Void)? = nil)
参考资料
- Opening the Settings app from another app
- https://apple.stackexchange.com/questions/42915/complete-documentation-of-the-ios-settings-apps-url-scheme