iOS6 Twitter интеграция

Изглежда има разлика между симулатора на iPhone и действителното устройство, когато проверявате дали Twitter е наличен.

Проверявам дали е настроен акаунт в Twitter, като използвам този код: [SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter];

В симулатора има хубав UIAlertView, който информира потребителя, че няма настройка на акаунти в Twitter и два бутона, един за Настройки и един за Отказ.

Въпреки това, когато стартирам приложението си на устройството си, то няма да показва горното UIAlertView. Защо така? И как мога да разбера кой бутон е натиснат в горния UIAlertView (тъй като не го инстанцирах?)

Ето как изглежда на симулатора:

въведете описание на изображението тук


person Peter Warbo    schedule 02.10.2012    source източник


Отговори (2)


За да обработите резултата от обаждането в Twitter, можете да използвате този фрагмент:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
        SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){

        [twitterController dismissViewControllerAnimated:YES completion:nil];

        switch(result){
        case SLComposeViewControllerResultCancelled:
        default:
        {
            NSLog(@"Cancelled.....");

        }
            break;
        case SLComposeViewControllerResultDone:
        {
            NSLog(@"Posted....");
        }
            break;
    }};

    [twitterController setCompletionHandler:completionHandler];
    ...
    ...
   }
person Jean    schedule 03.10.2012
comment
Това не отговаря на въпроса ми. - person Peter Warbo; 03.10.2012
comment
Премахването на тази отметка кара всичко да работи според очакванията if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { - person Alex McPherson; 09.09.2013

Аз също имам същия проблем, че устройството не показва UIAlert, както го прави симулаторът. Докато Apple не го поправи, това е, което правя (не е толкова чисто или хубаво като симулатора и изисква потребителят ръчно да отиде на началния екран) Apple, моля, поправете това!

Редактиране: стандартните приложения на Apple показват идеално UIAlert, разбира се, например: споделянето на снимка от приложението за снимки, без да имате акаунт в Twitter/Facebook, ще покаже правилния UIAlert.

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    {
        mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
        [mySLComposerSheet setInitialText:@"Check out the app:"];
        [mySLComposerSheet addImage:[UIImage imageNamed:@"test.png"]];
        [mySLComposerSheet addURL:[NSURL URLWithString:@"http://urlofyourapp.com"]];
        [self presentViewController:mySLComposerSheet animated:YES completion:nil];
    }
    else {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"You need to setup an account in the Settings app under Twitter to use this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
    }
    [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

        if (result == SLComposeViewControllerResultCancelled){[mySLComposerSheet dismissModalViewControllerAnimated:YES];}
        else if (result == SLComposeViewControllerResultDone){[mySLComposerSheet dismissModalViewControllerAnimated:YES];}

    }];
person klcjr89    schedule 06.10.2012