如何以编程方式在iOS 10上的Objective-C中打开WIFI设置

Shu*_*eph 8 iphone objective-c wifi ios ios10

以下代码在iOS 9上运行正常,请参阅帖子.但它在iOS 10上不起作用.如何在iOS 10上以编程方式打开WIFI设置

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

Ahm*_*d F 13

相同的代码应该可以使用,但是对于iOS 10,您需要通过向URL类型添加"prefs"来做一些额外的工作:

选择目标后:

  • 导航到"信息"选项卡.
  • 滚动到底部后,您应该看到"URL类型"部分.
  • 添加一个新的(通过单击加号按钮)并使用"prefs"填充"URL Schemes".

它应该类似于:

在此输入图像描述

现在,您的代码应该可以正常工作.

更新:

如果-somehow-并没有达到预期效果,您可能需要遵循这一解决办法.

希望有所帮助.

  • 你会被拒绝。他们现在检测“偏好”网址的使用 (2认同)

Dri*_*ico 9

在iOS 10中,需要新的URL.尝试使用此代码测试两个网址:

NSArray* urlStrings = @[@"prefs:root=WIFI", @"App-Prefs:root=WIFI"];
for(NSString* urlString in urlStrings){
    NSURL* url = [NSURL URLWithString:urlString];
    if([[UIApplication sharedApplication] canOpenURL:url]){
        [[UIApplication sharedApplication] openURL:url];
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 它不适用于`iOS 11`.好难过. (2认同)
  • 我的应用程序刚刚因此被拒绝。不使用 (2认同)

Shu*_*eph 3

这在 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 11 中,“App-Prefs”将我带到应用程序的特定首选项,而不是 wifi 屏幕。 (4认同)