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

时间:2016-10-19 09:04:34

标签: ios objective-c iphone wifi ios10

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

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];

7 个答案:

答案 0 :(得分:13)

同样的确切代码应该有效,但对于iOS 10,您需要通过添加" prefs"来完成一些额外的工作。到URL类型:

选择目标后:

  • 导航至"信息"标签。
  • 滚动到底部后,您应该会看到"网址类型"部分。
  • 添加一个新的(通过点击加号按钮)并填写" URL方案"与" prefs"。

它应该类似于:

enter image description here

现在,您的代码应该可以正常运行。

<强>更新

如果 - 某些方式 - 按预期工作,您可能需要遵循此workaround

希望有所帮助。

答案 1 :(得分: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;
    }
}

答案 2 :(得分:3)

这适用于iOS 10,

  

转到目标 - &gt; (申请) - &gt;信息 - &gt;网址类型 - &gt; +

URL Schemes

  

首选项

查看图片, enter image description here

然后添加以下代码

-(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"]];
    }
}

答案 3 :(得分:2)

试试这个:

Private Sub TextBox6_AfterUpdate()

Sheets("Mastor list").Select
ActiveSheet.Unprotect
If WorksheetFunction.CountIf(Sheets("Mastor list").Range("D:D", Range("D:D").End(xlDown)), Me.TextBox6.Value) = 0 Then

    Exit Sub
End If

With Me
Sheets("Mastor list").Select
    TextBox1.Text= "WorksheetFunction.VLookup(Me.TextBox6),Mastor list.Range(Mastor list.Columns("D:D")), 5, 0)"

Sheets("Mastor list").Select
ActiveSheet.Protect


End Sub

谢谢:)

答案 4 :(得分:0)

对于Swift:

  var set = new HashSet[Int]()

  def add(a:Int){
    set.add(a)
  }

  sc.parallelize(List(1,2,3)).map(add).collect

  set.size

答案 5 :(得分:0)

Swift 4.2,iOS 12

使用更新版本的iOS不再可能进行这种深度链接。我的应用最近因使用以下内容而被拒绝:“ 非公开URL方案”,例如:prefs:root=。因此,我想说不要浪费您的时间来做一些我们目前无法做的事情,只需打开设置即可。

这是我目前在我的应用程序中使用的功能:

extension UIApplication {

    ...

    @discardableResult
    static func openAppSetting() -> Bool {
        guard
            let settingsURL = URL(string: UIApplicationOpenSettingsURLString),
            UIApplication.shared.canOpenURL(settingsURL)
            else {
                return false
        }

        UIApplication.shared.open(settingsURL)
        return true
    }
}

用法:UIApplication.openAppSetting()

答案 6 :(得分:-2)

 let url=URL(string: "App-Prefs:root=WIFI")
// you can change root as your requirements 
        if UIApplication.shared.canOpenURL(url!)
        {
            UIApplication.shared.open(url!, options: [:], completionHandler: {success in

            })

        }
        else{
            UIApplication.shared.open(url!, options: [:], completionHandler: {success in

            })
        }