2011-10-20 5 views
13

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

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

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

+0

Очень обширный список: http://iphoneza.co.za/IconSettings/ – Sahil

+0

https://github.com/Burnsoft/Settings-Swipe Я недавно открытым исходным кодом оригинальной версии моего последнего приложения , так как функции, скорее всего, никогда не попадут в AppStore. Он использует локальные уведомления, чтобы обеспечить легкий доступ к вашим настройкам iOS5. Включая Twitter. –

+0

Недавно я придумал способ отправить пользователя в Twitter Настройки, которые работают в iOS 5.1+ http://goto11.net/programmatically-open-twitter-settings-on-ios-5-1/ – nrj

ответ

30

Try,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];  
+0

Удивительный. Я действительно надеялся, что «prefs: root = LocationServices» будет работать ... но, увы :( – Sahil

+0

Любая идея о том, чтобы это работало для сторонних настроек приложения? Я пробовал использовать отображаемое имя пакета для моего приложения, и это не сработало. : он работает! Это чувствительно к регистру. –

+0

Вы - сутенер, сэр! – Shizam

3

@Sahil

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

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

открыть прямо в Location Services

4

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

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

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

+1

Это больше не работает в iOS 5.0.1. –

1

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

var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter) 
controller.setInitialText("My Post") 
self.presentViewController(controller, animated: true, completion: nil) 
2

Грозные ответы уже даны, но вот полный фрагмент кода, чтобы открыть настройки твиттера в настройках с помощью 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) 
0

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

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