2016-10-30 22 views
1

在我的應用程序中,我有一個警報視圖,可以打開IOS設置應用程序的iCloud部分。這曾任職於iOS8上/ 9(斯威夫特2):「prefs:root = CASTLE」無法在IOS10中打開iCloud設置?

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中再次運行?

+0

'首選項:'將無法工作,因爲iOS的10使用'UIApplicationOpenSettingsURLString' –

+0

UIApplicationOpenSettingsURLString將打開我的應用程序在IOS節設置應用這不是我想要的。我需要在設置應用程序中打開iCloud部分。 – Leontien

+0

偏愛是一個私人的API ...蘋果建議你使用UIApplicationOpenSettingsURLString ....打開你的應用程序的設置 –

回答

1

對於iOS月10日起變更prefs:root=CASTLEApp-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