【发布时间】:2016-01-23 13:58:15
【问题描述】:
如何使用 Objective-c 从我的应用程序启动设备上的 Twitter 设置?
我正在开发一个在 twitter 上共享链接的应用程序,我正在使用 SLComposeViewController 并且它可以工作,但是当未安装 Twitter 应用程序并且没有在设置中配置 Twitter 帐户时,它什么也不做。
我想显示一条提醒,邀请用户登录 Twitter 以分享链接,当用户点击按钮时,应用程序应在设备上启动 Twitter 设置。
我一直在阅读自 iOS 5.1 以来不允许使用这样的 url 方案
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=TWITTER"]];
我读到它只允许通过以下方式启动您的应用设置:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
但我在一些应用程序中发现它实际上会打开类似这样的 Twitter 设置:
screenshot of meme generator app that opens twitter settings
你知道怎么做吗?
这是我用于 SLComposeViewController 的代码:
- (IBAction)twitterAction:(id)sender {
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityView.center=self.view.center;
[activityView startAnimating];
[self.view addSubview:activityView];
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *composerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[composerSheet setInitialText:@"text to post"];
[composerSheet addURL:[NSURL URLWithString:@"http://urltoshare.com"]];
[composerSheet addImage:[UIImage imageNamed:@"postimage.JPG"]];
[composerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
[activityView stopAnimating];
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
// some code ...
break;
case SLComposeViewControllerResultDone:
[self changeSharedStatus];
NSLog(@"Post Sucessful");
// some code ...
break;
default:
break;
}
}];
[self presentViewController:composerSheet animated:YES completion:nil];
}else {
/* code to show the alert that invites the user to open settings */
}
}
【问题讨论】:
标签: ios objective-c iphone twitter slcomposeviewcontroller