是否有机会通过点击按钮在iOS中显示settings.app?它应该适用于iOS 5.1,因此“prefs:root ...”url是没有选择的。
你知道如何解决这个问题吗?
答案 0 :(得分:9)
我知道问题是关于5.1的具体问题,但是如果有其他人感兴趣的话:
从iOS 8开始,可以将用户从您的应用直接带入“设置”应用。它们将深入链接到您应用的特定“设置”页面,但可以退回到顶级“设置”屏幕。
<强>更新强>
感谢Pavel的评论,我简化了if语句并避免了iOS 7上的EXC_BAD_ACCESS。
更新2:
如果您的部署目标设置为8.0或更高,Xcode 6.3将给您以下警告:
Comparison of address of 'UIApplicationOpenSettingsURLString' not equal to a null pointer is always true
这是因为该功能从8.0开始可用,因此该指针永远不会是NULL
。如果您的部署目标是8.0+,请删除下面的if语句。
if (&UIApplicationOpenSettingsURLString != NULL) {
NSURL *appSettings = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:appSettings];
}
答案 1 :(得分:4)
您无法在iOS 5.1上执行此操作。很可能Apple故意删除了这种能力(你会得到“请输入有效的URL”,而Twitter仍然可以调用设置)。请参阅:
答案 2 :(得分:1)
在iOS 8上,Apple让我们可以直接从我们的应用程序进入应用程序设置
您可以应用此代码:
- (IBAction)openSettings:(id)sender {
BOOL canOpenSettings = (UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}
}
答案 3 :(得分:0)
iOS6显示了一个选项,可以直接从“AlertView”(自动显示)打开设置应用程序,如果它检测到您是否尝试在没有设置这些帐户的情况下发布到FB或Twitter。
答案 4 :(得分:0)
方法openURL:
现在已弃用。
打开设置URL(或与此相关的任何URL)的正确方法如下:
NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:settingsURL options:@{} completionHandler:^(BOOL success) {
// Do anything here
}];