Подтвердить что ты не робот

IOS 10 beta: схема URL не работает, но работает в iOS 9

В одном конкретном сценарии я беру пользователь на страницу настроек кода доступа. ниже используется код для этого -

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

После обновления до бета-версии iOS 10 я больше не переношу на страницу с паролями настроек, а заканчивает приложение.

Кто-нибудь может помочь мне в этом. Спасибо заранее.

4b9b3361

Ответ 1

Пока еще нет.

Примерно за 1 месяц до выхода iOS 10 beta 1 мое приложение получило отказ от открытия URL-адреса Preference.app. Группа проверки приложений дала мне телефонный звонок, чтобы объяснить это: теперь это не разрешено по причине: Использование частного API. Допускается только открытие текущей страницы настроек приложения (UIApplicationOpenSettingsURLString).

Так что теперь действительно имеет смысл, почему они меня отвергли. Поскольку никто не может открыть системные настройки с iOS 10.

Обновлен ответ на 8 декабря 2016 года:

Использование Private API (не отправляйте приложение с этим кодом в App Store):

@interface PrivateApi_LSApplicationWorkspace
- (BOOL)openSensitiveURL:(id)arg1 withOptions:(id)arg2;
@end

PrivateApi_LSApplicationWorkspace* _workspace;

_workspace = [NSClassFromString(@"LSApplicationWorkspace") new];

BOOL result = (BOOL)[_workspace openSensitiveURL:[NSURL URLWithString:@"Prefs:root=YOURSETTINGURLHERE"] withOptions:nil];

Ответ 2

Схема префиксов изменилась на iOS 10, вы можете использовать это:

if #available(iOS 10.0, *) {
    UIApplication.shared.open(URL.init(string:"App-Prefs:root= PASSCODE")!, options: [UIApplicationOpenURLOptionUniversalLinksOnly:true], completionHandler:{(success: Bool?) -> Void in}})
} else {
    // Fallback on earlier versions
    UIApplication.shared.openURL(URL.init(string:"Prefs:root= PASSCODE")!)
}

Ответ 3

На iOS 10 вы можете вместо этого использовать openURL:options:completionHandler:;

Также вы можете увидеть эту статью (openURL Устаревшая в iOS 10) для получения более подробной информации.