iOS 9:与iCloud设置的深层链接

Hen*_* OM 5 deep-linking ios icloud

这是我的问题:我正在开发一个使用CloudKit的应用程序.我需要提供用户未在设备上登录iCloud的场景.我想将它们发送到iCloud设置,并提醒他们需要为我的应用程序打开iCloud数据.我 NSFileManager.defaultManager().ubiquityIdentityToken用来决定是否需要打开用户的iCloud设置. 问题是,我无法弄清楚如何.设备的iCloud设置的URL是什么?我做了很多研究,知道我不想要UIApplicationOpenSettingsURLString.这打开了应用程序的设置,而不是设备.使用iOS 9的新安全功能并不容易,我认为我已经正确设置了这些功能:

在此输入图像描述

3d-*_*nes 1

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

步骤如下:

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

在此输入图像描述

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

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

iOS 10.* 的注意事项:openURL该方法实际上已被弃用,您应该使用带有完成处理程序的 open 方法:

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

参考