iOS 9 : Deeplink to iCloud Settings

标签 ios icloud deep-linking

这是我的问题:我正在开发一个使用 CloudKit 的应用程序。我需要处理用户未在设备上登录 iCloud 的情况。我想将他们发送到 iCloud 设置,并提醒他们需要为我的应用程序打开 iCloud 数据。我正在使用 NSFileManager.defaultManager().ubiquityIdentityToken 来决定是否需要打开用户的 iCloud 设置。 问题是,我想不通。设备的 iCloud 设置的 URL 是什么?我做了很多研究,知道我不需要 UIApplicationOpenSettingsURLString。这将打开应用程序的设置,而不是设备。 iOS 9 的新安全功能并没有让这变得更容易,我认为我已经正确设置了这些功能:

enter image description here

最佳答案

您可以启动设置应用程序的 iCloud 部分。我已经在 iOS 9.3 和 10.2 上对此进行了测试。

步骤如下:

  1. 从项目设置/信息/URL 类型向您的应用添加新的 URL 方案。

enter image description here

  1. 现在,您可以使用此代码打开设置/iCloud 应用。

    let iCloudURL = URL(string: "App-prefs:root=CASTLE")
    if let settingsURL = iCloudURL {
         UIApplication.shared.openURL(settingsURL)
    }
    

针对 iOS 10.* 的注意事项:openURL 方法实际上已弃用,您应该使用 open with completion handler 方法:

open(_ url: URL, 
     options: [String : Any] = [:], 
     completionHandler completion: ((Bool) -> Void)? = nil)

引用

关于iOS 9 : Deeplink to iCloud Settings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551316/

相关文章:

ios - CKFetchNotificationChangesOperation 返回旧通知

ios - 如何为 iOS 应用程序正确启用 iCloud 文档同步?

ios - 如何使用深层链接重定向到 Apple App Store? (例如查询字符串)

ios - 只调用第一个请求 UIWebView

javascript - Facebook 分享深度链接 - Javascript

ios - 无法使用 NSJSONSerialization 将数字转换为 JSON 值

ios - libc++abi.dylib : terminating with uncaught exception of type NSException - SpriteKit

ios - UIImagePickerController 和外部显示

ios - Objective C - 共享*几乎*相同委托(delegate)方法的类

ios - 手动迁移 iCloud 核心数据