2015-10-23 2 views
1

Как я могу запустить настройки Twitter на устройстве из моего приложения с объективом-c?Настройки устройства для запуска устройства с объектива-c iOS 9

Я работаю над приложением, которое разделяет ссылку на твиттер, я использую SLComposeViewController, и он работает, но когда приложение Twitter не установлено и учетная запись Twitter не настроена на настройки, она ничего не делает.

Я хочу показать предупреждение, предлагающее пользователю войти в систему на Twitter, чтобы иметь возможность разделить эту ссылку, когда пользователь нажимает кнопку, приложение должно запустить настройки Twitter на устройстве.

Я читал, что с помощью схемы URL, как это не допускается, так как прошивка 5.1

[[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 */ 
    } 
} 

ответ

0

Почему приложение, которое вы нашли открывает настройки Twitter, это потому, что, когда вы просите IOS, чтобы «создать» чириканье, если нет настройка учетной записи в iOS, iOS покажет вам это предупреждение, спрашивающее вас, хотите ли вы пойти в настройку добавления учетной записи twitter в iOS.

Так что, если вы звоните SLComposeViewController код будет вызывать этот alertview, если нет щебетать счета в прошивкой:

SLComposeViewController *controllerSLC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
[controllerSLC setInitialText:@"text"]; 
[self presentViewController:controllerSLC animated:YES completion:nil]; 
Смежные вопросы