我知道我可以使用
打开iOS 5中的设置应用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
但有没有办法直接打开Twitter设置页面?当您尝试呈现TWTweetComposeViewController并且尚未设置Twitter帐户时,可以看到所需的功能。
答案 0 :(得分:30)
尝试,
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
答案 1 :(得分:4)
我发现 root 值是Preferences.app的“Settings.strings”文件中找到的本地化字符串的键。以下是我测试过的一些值:
将军:总则
iCloud:CASTLE
邮件:ACCOUNT_SETTINGS
推特:TWITTER
Safari:Safari
音乐:音乐
视频:视频
照片:照片
注:注意事项
商店:STORE
但是我无法弄清楚如何使用我自己的应用设置来实现这一点。
prefs:root = Apps& path =< CFBundleDisplayName> 似乎无法正常工作。
答案 2 :(得分:3)
@Sahil
使用
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
直接开通位置服务
答案 3 :(得分:2)
已经给出了很棒的答案,但这里是使用UIAlertController
和 Swift 3 在设置中打开Twitter设置的完整代码段:
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)
答案 4 :(得分:1)
只要展示作曲家。如果没有可用的Twitter帐户,它将显示AlertView以转到设置
var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
controller.setInitialText("My Post")
self.presentViewController(controller, animated: true, completion: nil)
答案 5 :(得分:0)
建议不要使用prefs:root
方案。设备上的iOS更新很可能会发生重大变化,并可能导致您的应用从应用商店中被拒绝。