【问题标题】:Launch device twitter settings from objective-c iOS 9从 Objective-c iOS 9 启动设备 twitter 设置
【发布时间】: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


    【解决方案1】:

    为什么您找到的应用会打开 Twitter 设置, 这是因为当您要求 iOS“创建”一条推文时,如果 iOS 中没有设置帐户,iOS 会显示此警报视图,询问您是否要进入将推特帐户添加到 iOS 的设置。

    因此,如果您调用 SLComposeViewController,如果 iOS 中没有 twitter 帐户,代码将触发此警报视图:

    SLComposeViewController *controllerSLC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    [controllerSLC setInitialText:@"text"];
    [self presentViewController:controllerSLC animated:YES completion:nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多