如何在用户按下按钮时打开“设置”应用程序?

时间:2010-11-03 22:18:20

标签: iphone iphone-sdk-3.0 ios4

根据我的理解,使用这样的代码:

NSURL* appUrl = [NSURL URLWithString: @"URL"];
[[UIApplication sharedApplication] openURL:appUrl];

当用户说按下按钮时,我可以打开地图,YouTube,Safari,邮件,iTunes和App Store。

但我想知道是否可以使用此方法打开“设置”应用。

基本上,当用户第一次打开我的应用程序时,我想要弹出一个UIAlertView,让用户知道他们可以根据需要更改特定设置,然后按OK或者按设置将他们带到设置应用。

我知道Apple在某些情况下会这样做,但是开发人员可以这样做吗?

6 个答案:

答案 0 :(得分:16)

根据@ bnduati的回答,在iOS 8中,您可以使用以下代码在设置应用中打开应用的设置:

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

旧答案:

从iOS 5.1到iOS 7,无法从其他应用程序打开设置应用程序。

您可能需要调查this framework以提供应用内设置。

还有很多其他问题可以讨论这个话题:

iPhone - how to put Settings bundle seen through System Settings App into your own App?

Launch iPhone setting screen from Application?

How to send a user to the main iPhone Settings screen from within your iPhone App

答案 1 :(得分:9)

在iOS 8及更高版本中,您可以通过以下方式将用户发送到您应用的设置:

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

答案 2 :(得分:6)

您可以在iOS 5.0及更高版本上使用此功能:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

答案 3 :(得分:3)

我不知道这是否可行,但有一个问题是用户需要导航回您的应用。您可以改为拥有自己的首选项视图,该视图可以使用NSUserDefaults写入首选项应用程序将使用的同一文件。

[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];

[[NSUserDefaults standardUserDefaults] stringForKey:key]

答案 4 :(得分:1)

Swift语法:

UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!)

答案 5 :(得分:0)

Swift 3

os.listdir