繁体   English   中英

iOS 中的访问设置应用程序

[英]Access Settings app in iOS

是否有机会通过单击按钮在 iOS 中显示 settings.app? 它应该适用于 iOS 5.1,所以“prefs:root...” url 是没有选择的。

你知道如何解决这个问题吗?

我知道这个问题特别是关于 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];
} 

您无法在 iOS 5.1 上执行此操作。 很可能 Apple 有意删除了该功能(您将收到“请输入有效的 URL”,但 Twitter 仍然可以调用设置)。 请参阅:

在 iOS 8 上,Apple 让我们可以直接从我们的应用程序转到应用程序设置

您可以应用此代码:

- (IBAction)openSettings:(id)sender {
    BOOL canOpenSettings = (UIApplicationOpenSettingsURLString != NULL);
    if (canOpenSettings) {
        NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
        [[UIApplication sharedApplication] openURL:url];
    }
}

如果 iOS6 检测到您是否在没有设置这些帐户的情况下尝试发布到 FB 或 Twitter,则它会显示一个选项,可以直接从“警报视图”(自动显示)打开设置应用程序。

我在这里详细说明了这一点

方法openURL:现在已弃用。


iOS 10 +

打开设置 URL(或与此相关的任何 URL)的正确方法如下:

NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

[[UIApplication sharedApplication] openURL:settingsURL options:@{} completionHandler:^(BOOL success) {

    // Do anything here 
                    
}];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM