2016-10-19 2 views

ответ

3

Это прекрасно работает на 10 прошивке,

Перейти к Цели -> (Application) - > Информация -> Типы URL-адресов -> +

В 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"]]; 
    } 
} 
+1

В iOS 11 'App-Prefs' принимает меня к определенным настройкам приложения, а не к экрану Wi-Fi. – keegan3d

11

точно такой же код должен работать, но для прошивки 10 вам нужно сделать некоторую дополнительную работу, добавив «преф» в Типы URL:

После выбора цели: на вкладке

  • Navigate "Info".
  • После прокрутки донизу вы должны увидеть раздел «Типы URL».
  • Добавьте новый (нажав кнопку «плюс») и заполните «URL-схемы» «prefs».

Он должен быть похож на это:

enter image description here

Теперь код должен отлично работает.

UPDATE:

Если -somehow- сделал не работу, как и ожидалось, вы можете следовать этому workaround.

Надеюсь, что помогло.

+4

Это не работает в ИО 10 –

+1

OpenUrl амортизируется – gregm

+0

@ShuvoJoseph вы могли бы повторить его? он должен работать на данный момент ... –

-1

Попробуйте это один:

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]options:[NSDictionary dictionary] completionHandler:^(BOOL success) { 
     }]; 
    } 

Спасибо :)

10

В прошивке 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; 
    } 
} 
+1

Работает очень хорошо, спасибо! Есть ли, возможно, документация о возможных корневых ключах? Или мы можем работать совместно на одном? – DrMickeyLauer

+1

К сожалению, нет официальной документации, но некоторые страницы уже ссылаются на многие из них, например https://gist.github.com/phynet/471089a51b8f940f0fb4 – Drico

+0

В отличие от других, этот работал для меня также для iOS 10 –

1

Для Swift:

let url = URL(string: "App-Prefs:root=WIFI") 

    if UIApplication.shared.canOpenURL(url!){ 
     UIApplication.shared.openURL(url!) 

    } 
-1
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 

      }) 
     }