簡體   English   中英

從Objective-C iOS 9啟動設備Twitter設置

[英]Launch device twitter settings from objective-c iOS 9

如何使用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設置:

打開推特設置的米姆生成器應用程序的屏幕截圖

你知道怎么做嗎?

這是我用於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 */
    }
}

為什么找到的應用程序會打開Twitter設置,這是因為當您要求iOS“創建”推文時,如果iOS中沒有帳戶設置,iOS會在此Alertview中顯示您是否要進入該設置用於將Twitter帳戶添加到iOS。

因此,如果您調用SLComposeViewController,那么如果iOS中沒有Twitter帳戶,則代碼將觸發此Alertview:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM