如何在iOS9中以编程方式打开目标c中的WIFI设置

Hel*_*aio 13 iphone objective-c ios9

我正在尝试使用Objective-C通过我的应用程序访问WIFI设置.但找不到任何办法.有人能帮助我吗?

已经测试过:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
Run Code Online (Sandbox Code Playgroud)

在iOS 9上不起作用.

小智 11

这是我的代码

if (&UIApplicationOpenSettingsURLString != NULL) { 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]]; 
} 
Run Code Online (Sandbox Code Playgroud)

尝试首选项添加到URL方案,如:/sf/answers/2187762041/

  • 这不适用于`iOS 10`.有什么工作吗? (6认同)
  • 这是应用程序商店指南所禁止的,我刚刚有一个应用程序拒绝审核小组执行此操作:"您的应用程序使用"prefs:root ="非公共URL方案,这是一个私有实体.使用非-Appublic API不允许在App Store上使用,因为如果这些API发生变化,可能会导致糟糕的用户体验." (6认同)
  • 我们不再应该用这种方式打开Wi-Fi.Apple拒绝二进制文件. (3认同)

Shu*_*eph 6

这适用于iOS 10,

转到目标 - >(应用程序) - >信息 - > URL类型 - > +

URL Schemes

首选项

然后打电话,

- (void)openWifiSettings
{
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"prefs:root=WIFI"]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
    } else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]];
    }
}
Run Code Online (Sandbox Code Playgroud)

  • iOS 10中断了.有任何修复吗? (5认同)
  • 我们不再应该用这种方式打开Wi-Fi.Apple拒绝二进制文件. (3认同)
  • 是的,这在iOS10中被打破了 (2认同)

Kar*_*esh 6

根据Apple的New Review标准,我们不应该使用这种方式来打开Wi-Fi设置.我已经在我的应用程序中使用了很长时间,最近Apple拒绝了以下评论.

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

因此,您可以使用UIApplicationOpenSettingsURLString导航到应用程序的设置.

SWIFT代码:

if let settingsUrl = URL.init(string: UIApplicationOpenSettingsURLString), UIApplication.shared.canOpenURL(settingsUrl) {
                    UIApplication.shared.openURL(settingsUrl)
                }
Run Code Online (Sandbox Code Playgroud)