Откройте настройки Wifi с помощью команды "prefs: root = WIFI" в iOS 10

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

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

Ответы

Ответ 1

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

Ниже приведен полный список поддерживаемых схем URL-адресов Apple.

Вот нить, где Apple подтверждает, что "любые схемы URL-адресов Apple, которые официально не документированы, следует рассматривать как частный API".

Ответ 2

SWIFT 3.0: - работает в iOS 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!)
}

Ответ 3

попробуйте это для объектного c в iOS 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"]];
}

Ответ 4

Мое приложение также использует этот 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]];
}

Ответ 5

Использование "App-Prefs: root" вместо "prefs: root"

Ответ 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"]];
    }
}

Ответ 7

iOS 10, чтобы открыть настройки ваших приложений:

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