2016-11-22 67 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)") 

     }) 
    }