Ответ 1
Попробуйте,
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
Я знаю, что я могу открыть приложение настроек в iOS 5, используя
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
но есть ли способ открыть страницу настроек Twitter прямо? Желаемую функциональность можно увидеть, когда вы пытаетесь представить TWTweetComposeViewController, и вы не создали учетную запись Twitter.
Попробуйте,
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
Я узнал, что корневое значение является ключом локализованной строки, найденной в файле "Settings.strings" файла Preferences.app. Вот некоторые значения, которые я тестировал для работы:
Общее: Общие
iCloud: CASTLE
Mail: ACCOUNT_SETTINGS
Twitter: TWITTER
Safari: Safari
Музыка: МУЗЫКА
Видео: ВИДЕО
Фотографии: Фотографии
Примечания: ПРИМЕЧАНИЯ
Магазин: МАГАЗИН
Однако я не могу понять, как это сделать с настройками моего собственного приложения. prefs: root = Apps & path = <CFBundleDisplayName> , похоже, не работает.
@Sahil
Используйте
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
чтобы открыть прямо в службах местоположения
Удивительные ответы уже заданы, но вот полный фрагмент, чтобы открыть настройки Twitter в настройках с помощью UIAlertController
и Swift 3:
let alert = UIAlertController(title: "No Twitter Accounts", message: "There are no Twitter accounts configured. You can add or create a Twitter account in Settings.", preferredStyle: .alert)
let firstAction = UIAlertAction(title: "Cancel", style: .default, handler: {(action: UIAlertAction) -> Void in
})
let secondAction = UIAlertAction(title: "Settings", style: .default, handler: {(action: UIAlertAction) -> Void in
let url = URL(string:"App-Prefs:root=TWITTER")!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
})
alert.addAction(firstAction)
alert.addAction(secondAction)
self.present(alert, animated: true, completion: nil)
Просто покажите композитора. Если нет учетной записи Twitter, она отобразит AlertView, чтобы перейти к настройкам
var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
controller.setInitialText("My Post")
self.presentViewController(controller, animated: true, completion: nil)
Использование схемы prefs:root
не рекомендуется. Скорее всего, это будет изменяться с обновлением iOS на устройстве и может привести к тому, что ваше приложение будет отклонено из хранилища приложений.