ShareKit пропустить лист обмена iOS 8 для Instagram

Я делюсь изображением из своего приложения в instagram с помощью ShareKit, делая это

UIImage *image = viewTheme.image;
SHKItem *item = [SHKItem image:image title:@"Check this out! "];
[SHK setRootViewController:self];
[SHKInstagram shareItem:item];

И он открывает страницу общего доступа с кнопкой Facebook и кнопкой «Открыть в Instagram». Поэтому мне было интересно, есть ли способ напрямую вызвать действие «Открыть в Instagram» или, если это невозможно, удалить эту кнопку Facebook (и кнопку «Дополнительно», если это возможно).

введите здесь описание изображенияОБНОВЛЕНИЕ

У меня есть это в делегате приложения

DefaultSHKConfigurator *configurator = [[MyShareConfigurator alloc] init];
    [SHKConfiguration sharedInstanceWithConfigurator:configurator];

И мой подкласс конфигуратора это один

- (NSString*)appName {
    return [[NSBundle mainBundle] infoDictionary][@"CFBundleDisplayName"];

}

- (NSString*)appURL {
    return @"https://github.com/ShareKit/ShareKit/";
}

# pragma mark - API Keys



- (NSString*)facebookAppId {
    return @"466611176835259";
}

- (NSString*)facebookLocalAppId {
    return @""; //Si no se usa se deja vacion
}

- (NSNumber*)forcePreIOS6FacebookPosting {
    return [NSNumber numberWithBool:false];
}


- (NSNumber*)forcePreIOS5TwitterAccess {
    return [NSNumber numberWithBool:false];
}

- (NSString*)twitterConsumerKey {
    return @"ZGcj7yhbGSDUlXHHlLBwkC1Dc";
}

- (NSString*)twitterSecret {
    return @"naFO0wcOvGtoGJS6jPNFRREKYhfLTiXa9UtD1mRezzFP0q3Xcv";
}

- (NSString*)twitterCallbackUrl {
    return @"http://www.twitter.com";
}

- (NSNumber*)twitterUseXAuth {
    return [NSNumber numberWithInt:0];
}

- (NSString*)twitterUsername {
    return @"";
}


// Instagram crops images by default
- (NSNumber*)instagramLetterBoxImages {
    return [NSNumber numberWithBool:YES];
}

- (UIColor *)instagramLetterBoxColor
{
    return [UIColor whiteColor];
}

- (NSNumber *)instagramOnly {
    return [NSNumber YES];
}

#pragma mark - UI Configuration : Basic

- (NSNumber *)useAppleShareUI {
    return @YES;
}

- (UIColor*)barTintForView:(UIViewController*)vc {

    if ([NSStringFromClass([vc class]) isEqualToString:@"SHKTwitter"])
        return [UIColor colorWithRed:0 green:151.0f/255 blue:222.0f/255 alpha:1];

    if ([NSStringFromClass([vc class]) isEqualToString:@"SHKFacebook"])
        return [UIColor colorWithRed:59.0f/255 green:89.0f/255 blue:152.0f/255 alpha:1];

    return nil;
}

- (NSNumber*)showActionSheetMoreButton {
    return [NSNumber numberWithBool:false];// Setting this to true will show More... button in SHKActionSheet, setting to false will leave the button out.
}

Я также создал краткий пример того, что я пытаюсь сделать, вы можете скачать его здесь: https://www.dropbox.com/s/n09gnq4ul3lcdtk/sharePodTest.zip?dl=0


person emiliomarin    schedule 27.04.2015    source источник


Ответы (1)


реализовать этот метод в подклассе вашего конфигуратора

///only show instagram in the application list (instead of Instagram plus any other public/jpeg-conforming apps) 
- (NSNumber *)instagramOnly {
    return [NSNumber numberWithBool:YES];
}

РЕДАКТИРОВАТЬ: я провел еще одно расследование. ShareKit работает по назначению и в соответствии с руководством для разработчиков Instagram. Если вы установите для instagramOnly значение NO, вы увидите гораздо больше вариантов. Таким образом, кажется, что приложение Facebook также может делиться UTI @"com.instagram.exclusivegram", что не очень приятно с их стороны. Но, к сожалению, мы ничего не можем с этим поделать, кроме как подать отчет об ошибке в Facebook.

person Vilém Kurz    schedule 28.04.2015
comment
Я уже реализовал этот метод. То же самое происходит при публикации в WhatsApp - person emiliomarin; 28.04.2015
comment
Вы зарегистрировали свой подкласс конфигуратора в ShareKit? - person Vilém Kurz; 28.04.2015
comment
Да, я сделал, я обновил пост с кодом конфигуратора - person emiliomarin; 28.04.2015
comment
Также я обновил краткий пример того, что я делаю, спасибо! - person emiliomarin; 29.04.2015