2016-09-30 1 views
15

Я использовал prefs: root = схема URL-адреса WIFI в моем приложении с префиксами, введенными в info.plist, чтобы открыть приложение iOS в настройках Wi-Fi и он отлично работает на iOS 9, но он больше не работает на iOS 10.Открыть настройки Wifi по "prefs: root = WIFI" не удалось в iOS 10

Кто-нибудь знает, если это только регресс в первом предварительном просмотре разработчика или способ открыть настройки Wi-Fi изменился в iOS 10 или он больше не разрешен?

+4

The 'префы:' схема URL было никогда официально поддерживается. – rmaddy

+0

Но наше приложение должно открыть настройки Wi-Fi. Известны ли вам какие-либо другие работы API. – tbago

+0

App-Prefs: root = WIFI работает для меня – everettjf

ответ

5

Мое приложение также использует это api. К сожалению, Apple отключает это на iOS 10. Вот мое решение: ниже iOS 10 он все равно может открыть приложение «Настройка». на iOS 10, он перейдет на подстраницу (доступ к сотовым данным) приложения «Настройка», вы можете вернуться к настройке страницы одним нажатием. Я решил сохранить его. потому что он по-прежнему удобен, чем пользователь вручную открывает приложение «Настройка».

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"]; 
if ([[UIApplication sharedApplication] canOpenURL:url]) { 
    [[UIApplication sharedApplication] openURL:url]; 
} else { 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]; 
} 
13

СВИФТ 3,0: - работа в прошивкой 10 и более новых версиях также IOS 7,8,9

@IBAction func openWifiSetting(_ sender: AnyObject) { 
    let url = URL(string: "App-Prefs:root=WIFI") //for WIFI setting app 
    UIApplication.shared.openURL(url!) 
} 
+2

Whoa! Я отказался от надежды, что это возможно после iOS 10.x. Вы нашли повод полагать, что это приведет к приложению, отклоненному App Store? –

+0

iOS11 также в порядке –

6

попробовать это для Objective C в ИО 10

NSURL *url = [NSURL URLWithString:@"prefs:root=WIFI"]; 
if ([[UIApplication sharedApplication] canOpenURL:url]) { 
    [[UIApplication sharedApplication] openURL:url]; 
} else { 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=WIFI"]]; 
} 
15

Просто так это Явный: Apple этого не допускает. Возможно, ваше приложение все равно пройдет, но это то же самое, что использовать любой другой недокументированный API.

Here is the full list поддерживаемых схем URL-адресов Apple.

Here's a thread, где Apple подтверждает, что «любые схемы URL-адресов Apple, которые официально не документированы, следует рассматривать как частный API».

+0

Отлично. Отличная работа –

1

Это прекрасно работает на 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"]]; 
    } 
} 
2

Использование "App-PREFS: корень" вместо "префов: корень"

не
1

IOS 10, чтобы открыть настройки приложения:

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) { 
       UIApplication.shared.openURL(settingsURL) 
      } 

 Смежные вопросы

  • Нет связанных вопросов^_^