2016-10-30 5 views
1

私のアプリでは、IOS設定アプリのiCloudセクションを開くオプションがあるアラートビューがあります。これは、以前IOS8/9(スウィフト2)で働いていた:IOS10(スウィフト3)では"prefs:root = CASTLE" IOS10でiCloud設定を開くことができませんか?

let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE") 
if let url = settingsCloudKitUrl { 
    UIApplication.sharedApplication().openURL(url) 
} 

を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で再び動作させるためには、何を変更する必要がありますか? iOSの10のために

+0

'のprefsに動作します:' iOS版10.使用 'UIApplicationOpenSettingsURLString' –

+0

UIApplicationOpenSettingsURLStringはIOSで私のアプリのセクションを開きますので、動作しません設定アプリそれは私が望むものではありません。設定アプリでiCloudセクションを開く必要があります。 – Leontien

+0

prefsはプライベートAPIでした... Appleはあなたのアプリケーションの設定を開くためにUIApplicationOpenSettingsURLString ....を使用することをお勧めします –

答えて

1

以降App-Prefs:root=CASTLEからprefs:root=CASTLEを変更し、これは細かい

let settingsCloudKitUrl = URL(string:"App-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) 
    } 
} 
+1

それは動作します!ありがとう – Leontien

関連する問題