首页 > 解决方案 > 如何打开设备设置而不是应用程序特定设置?

问题描述

我一直在使用以下代码将用户带到设备设置页面以打开互联网。

guard let settingsUrl = URL(string: "App-Prefs:root=Settings")
            else {
            return
        }

        if UIApplication.shared.canOpenURL(settingsUrl)
        {
            if #available(iOS 10.0, *)
            {
                UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
                    print("Back to app From Settings: \(success)") // Prints true
                })
            } else {
                // Fallback on earlier versions
                UIApplication.shared.openURL(settingsUrl)
            }
        }

但苹果拒绝了我的更新,因为使用了这段代码,原因如下,

您的应用使用“prefs:root=”非公共 URL 方案,这是一个私有实体。App Store 不允许使用非公共 API,因为如果这些 API 发生变化,可能会导致糟糕的用户体验。

在未来提交此应用程序时继续使用或隐藏非公开 API 可能会导致您的 Apple Developer 帐户被终止,以及从 App Store 中删除所有相关应用程序。

后续步骤 要解决此问题,请修改您的应用程序以使用公共 API 提供相关功能,或使用“prefs:root”或“App-Prefs:root”URL 方案删除该功能。

所以我现在使用以下代码来避免这种拒绝。但是此代码将我带到 APP SPECIFIC SETTINGS 页面而不是常规设置。

guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
            return
        }

那么现在我如何调整此代码以导航到 GENERAL 设置?

标签: iosiphoneswifturlsettings

解决方案


推荐阅读