Как программно открыть экран настроек клавиатуры в iOS 10?

Как программно открыть экран настроек клавиатуры в iOS 10?

Этот код не работает в iOS 10

NSURL *keyboardSettingsURL = [NSURL URLWithString: @"prefs:root=General&path=Keyboard/KEYBOARDS"];
    [[UIApplication sharedApplication] openURL:keyboardSettingsURL];

и добавлена ​​схема URL


person Rachit    schedule 09.09.2016    source источник


Ответы (4)


Похоже, что эта функция отключена в iOS 10. Я считаю, что https://developer.apple.com/library/content/qa/qa1924/_index.html больше недействителен. Я проверил несколько лучших приложений для клавиатуры, и они либо были обновлены, чтобы больше не иметь прямой ссылки на настройки, либо иметь неработающую кнопку.

person Dima    schedule 18.09.2016

работает в iOS 10+

NSURL *keboardURL = [NSURL URLWithString: @"App-Prefs:root=General&path=Keyboard/KEYBOARDS"];
[[UIApplication sharedApplication] openURL:keyboardURL];

ключевые моменты:

@"App-Prefs:root=General&path=Keyboard/KEYBOARDS"

person DouSha    schedule 03.03.2017
comment
Это работает для iOS13. Я пытался, но не работал. Должны ли мы что-то включить в xcodeprojecte.g. Тип URL? - person Sumit utreja; 26.08.2020

Возможно, вам потребуется добавить в проект URL-схему, если вы еще этого не сделали. Инструкции и более подробную информацию можно найти в этом справочнике вопросов и ответов Apple. Надеюсь это поможет!

person Alex Pojman    schedule 09.09.2016
comment
Вы пробовали использовать "prefs:root=General&path=Keyboard"вместо "prefs:root=General&path=Keyboard/KEYBOARDS"? - person Alex Pojman; 09.09.2016
comment
prefs:root=General&path=Клавиатура тоже не работает - person Rachit; 09.09.2016
comment
К сожалению, вполне возможно, что Apple удалила этот тип URL-адресов из iOS 10. Согласно некоторым комментариям здесь, похоже, Apple уже давно отклоняла приложения, использующие URL-адрес prefs:*, поэтому было бы разумно удалить его из iOS 10. - person Alex Pojman; 10.09.2016
comment
В предоставленном URL-адресе четко указано, что это разрешено делать только с помощью расширений клавиатуры. Использование этого во всех других сценариях приведет к отклонению приложения. - person DS.; 10.09.2016
comment
Я использую это для приложения расширения клавиатуры - person Rachit; 10.09.2016

В iOS 10 требуется новый URL-адрес. Попробуйте использовать этот код, который проверяет оба URL-адреса:

NSArray* urlStrings = @[@"prefs:root=General&path=Keyboard/KEYBOARDS", @"App-Prefs:root=General&path=Keyboard/KEYBOARDS"];
for(NSString* urlString in urlStrings){
    NSURL* url = [NSURL URLWithString:urlString];
    if([[UIApplication sharedApplication] canOpenURL:url]){
        [[UIApplication sharedApplication] openURL:url];
        break;
    }
}
person Drico    schedule 28.02.2017