objective-c - 在 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 的项目中运行此代码时,它会进入应用程序设置屏幕。我不知道我错过了哪里。如果可能,请帮助我。提前致谢。
解决方案
全局变量
UIApplicationOpenSettingsURLString
用于创建可以传递给 openURL: 方法的 URL。当您打开从该字符串构建的 URL 时,系统会启动设置应用程序并显示应用程序的自定义设置(如果有)。
https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=objc
这是来自苹果官方文档。我的猜测是您的应用程序有自己的设置页面,这就是为什么openURL
功能会将您带到应用程序的设置页面而不是设置主页。
推荐阅读
- firebase - 在 Firebase 上存储数据以供稍后查询
- c# - 尝试发布数据但不断收到 HTTP 错误 404
- android - Android SharedPrefences 一个键的多个值
- graphql - 如何迁移现有存储过程以使用 graphql
- hyperledger-fabric - 从织物样本构建平衡转移时,签名集不满足策略 /Channel/Application/Org1/Admins
- python - 如何将x轴列为国家而不是python中的数字
- java - EnableGlobalMethodSecurity 注释中的运行时条件 prePostEnable
- asp.net-core - 集合中的 ViewModel 对象类型属性在 POST 上为空
- macos - OSX 勾选菜单栏复选框
- python - 在 Python 中即时实现加权平均