[英]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:
现在已弃用。
打开设置 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.