首页 > 解决方案 > 在 iOS 中以编程方式打开设置

问题描述

我正在从我的应用程序打开设备设置页面。当我通过 iPhone X(iOS11) 和 iPhone 8 打开时,它会转到应用程序设置。但是当我通过 iPhone 8 Plus 和 iPhone SE 打开时,它会进入主页设置页面。 我需要像 iPhone 8 Plus 一样打开 iPhone 的主页设置页面(打开主页设置页面)。我正在运行以下代码。

UIApplication *application = [UIApplication sharedApplication];
NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[application openURL:settingsURL options:@{} completionHandler:^(BOOL success) {
    if (success) {
        NSLog(@"Opened url");
    }
}];

我的问题是,我创建了一个新项目并运行了上面的代码。它工作正常。我可以导航到同一个 iPhone X 中的设备主页设置页面。但是当我在 iPhone X 的项目中运行此代码时,它会进入应用程序设置屏幕。我不知道我错过了哪里。如果可能,请帮助我。提前致谢。

标签: objective-cios11

解决方案


全局变量

UIApplicationOpenSettingsURLString

用于创建可以传递给 openURL: 方法的 URL。当您打开从该字符串构建的 URL 时,系统会启动设置应用程序并显示应用程序的自定义设置(如果有)。

https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=objc

这是来自苹果官方文档。我的猜测是您的应用程序有自己的设置页面,这就是为什么openURL功能会将您带到应用程序的设置页面而不是设置主页。


推荐阅读