Откройте настройки Twitter в приложении «Настройки» - PullRequest
13 голосов
/ 21 октября 2011

Я знаю, что могу открыть приложение настроек в iOS 5, используя

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

, но есть ли способ открыть страницу настроек Twitter напрямую?Желаемую функциональность можно увидеть, когда вы пытаетесь представить TWTweetComposeViewController, и вы не настроили учетную запись Twitter.

Ответы [ 6 ]

30 голосов
/ 31 октября 2011

Попробуй,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];    
4 голосов
/ 07 ноября 2011

Я обнаружил, что значение root является ключом локализованной строки, найденной в файле «Settings.strings» в Preferences.app.Вот некоторые значения, которые я протестировал для работы:

Общие: Общие
iCloud: ЗАМОК
Почта: ACCOUNT_SETTINGS
Твиттер: TWITTER
Сафари: Safari
Музыка: МУЗЫКА
Видео: ВИДЕО
Фотографии: Фотографии
Примечания: ПРИМЕЧАНИЯ
Магазин: STORE

Однако я не могу понять, как это сделать с настройками моего собственного приложения.
prefs: root = Apps & path = , похоже, не работает.

3 голосов
/ 05 ноября 2011

@ Сахил

Использование

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

, чтобы открыть прямо в Службы определения местоположения

2 голосов
/ 28 февраля 2017

Удивительные ответы уже даны, но вот полный фрагмент, чтобы открыть настройки 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)
1 голос
/ 02 января 2015

Просто покажи композитору. Если нет учетной записи Twitter, будет отображаться AlertView для перехода в Настройки

var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
controller.setInitialText("My Post")
self.presentViewController(controller, animated: true, completion: nil)
0 голосов
/ 17 апреля 2017

Использование схемы prefs:root не рекомендуется.Скорее всего, это будет серьезное изменение с обновлением iOS на устройстве и может привести к отклонению вашего приложения из магазина приложений.

https://gist.github.com/phynet/471089a51b8f940f0fb4

...