2016-11-22 19 views
4

我的問題已經被問了很多時間,直到現在還沒有解決方案。 我試圖從應用程序打開移動數據頁面。重定向到ios 8,9和10中的設置根頁面

1)我已經試過

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]] 

iOS 8 and iOS 9,而不是root page,它直接去Settings/AppName頁。這不是我想要的行爲。我想要的是進入設置根頁面

2)至於iOS 10,上述方法不起作用。我試過

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil] 

但它不起作用。

有什麼代碼可以同時滿足上述兩個。在iOS 8,9和10,它將轉到設置根頁面(如果可能的話,移動數據頁面)。如果沒有辦法,可以提供鏈接爲什麼不起作用。

UPDATE:

在IOS 8

和圖9,通過使用[[UIApplication的sharedApplication]的OpenURL:[NSURL URLWithString:@ 「首選項:根= GENERAL」]]我能夠重定向到設置主頁頁。使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@「prefs:root = MOBILE_DATA」]]將在設置中重定向到特定於應用程序的頁面,從而爲ios 10.1.0及更低版本提供更多的功能。但在最新的10.1.1中,它什麼都不會做。

我正在使用Xcode 8.0。

+0

'[[UIApplication的sharedApplication]的OpenURL :[NSURL URLWithString:UIApplicationOpenSettingsURLString]'這應該打開'設置應用程序'!你正在測試哪個ios版本? – Lion

+0

它打開設置應用程序,但它進入了應用程序特定的設置頁面....我想它進入設置主頁或如果可能的移動數據頁面 – da32

+0

我在說它應該打開設置應用程序的主頁! – Lion

回答

1
在IOS 10

他們改變 「首選項:」 到 「應用程序-偏好設置:」

guard let profileUrl = URL(string: "App-  
    Prefs:root=General") else { 
     return 
    } 

    if UIApplication.shared.canOpenURL(profileUrl) { 

    UIApplication.shared.open(profileUrl, completionHandler: { (success) in 

     print(" Profile Settings opened: \(success)") 

     }) 
    }