ShareKit меняется? - PullRequest
       50

ShareKit меняется?

7 голосов
/ 16 июня 2011

Я не очень часто использовал ShareKit, но я хочу иметь только три варианта обмена: Facebook, Twitter и электронная почта.ShareKit предоставляет гораздо больше возможностей, включая кнопку «Больше»Однако мне не нужна опция «Больше», только три.

В SHKActionSheet.m ShareKit:

// Add More button
[as addButtonWithTitle:SHKLocalizedString(@"More...")];

enter image description here

Ответы [ 6 ]

16 голосов
/ 23 ноября 2011

Теперь это очень просто, если вы используете ShareKit 2.0 .

  1. отредактируйте SHKSharers.plist, включив в него только нужных вам участников.Если вы не хотите компилировать неиспользуемые файлы для обмена файлами, установите флажок granular install .

  2. . Вы можете скрыть кнопку «more ...» в конфигураторе.Новый параметр - (NSNumber *) showActionSheetMoreButton

  3. Вы можете отключить переупорядочение избранного в конфигураторе.Обычно последний использовавшийся разделитель находится вверху в листе действий ShareKit.Новый параметр - (NSNumber *) autoOrderFavoriteSharers

При использовании этого способа вам не нужно изменять или добавлять какой-либо код в ShareKit.

4 голосов
/ 01 марта 2012

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

Sharekit - отличная идея, но:

  • Вы не можете обмениваться изображениями, URL и текстом в то же время! Должно быть только текст, только URL или только изображение. Возможно, вы хотите, чтобы ваш пользователь опубликуйте что-нибудь в FB или Twitter или отправьте электронное письмо о вашем приложении. Какой смысл, если сообщение не может содержать App Store или ссылка на веб-страницу?
  • Очень плохо документировано, часто приходится задавать вопросы на StackOverflow
  • Это глючит, не поддерживается оригинальным дизайнером, поэтому есть десятки вилок. Вы можете выбрать вилку ShareKit, но все же.
  • На его веб-сайте звучит так, будто это перетаскивание, и вы можете заставить его работать за считанные минуты, удачи в этом.

Требуется 5 строк для добавления твиттера, около 50 для Facebook и электронной почты для поддержки текста, URL-адреса и фотографии одновременно.

Twitter: этот код отправляет сообщение с редактируемым пользователем текстом, URL (скрытым, не редактируемым) и изображением. Мне потребовалось 5 минут, чтобы понять это.

#import  <Twitter/TWTweetComposeViewController.h>

- (IBAction)twitterButton:(id) sender {
   TWTweetComposeViewController *tweetView = [[TWTweetComposeViewController alloc] init];
   [tweetView setInitialText:@"Check out this app, it's awesome" ];
   [tweetView addImage:[UIImage imageNamed:@"MyImage.png"]];
   [tweetView addURL:[NSURL URLWithString:appDelegate.appStoreURL]]; 
   [self presentModalViewController:tweetView animated:YES];
}

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

UPDATE: Я реализовал Facebook, разделяя себя. Это было сложнее, чем я думал. Основная проблема в том, что вы не можете загрузить фотографию с постом, потому что Facebook принимает только ссылки на изображения. Хуже того, Facebook не позволяет ссылаться на фотографию, которая загружается в фотоальбом пользователя (очень просто), поскольку это должна быть внешняя ссылка. Для статических изображений вы можете использовать сокращатель URL, чтобы обойти его, но для пользовательских изображений в значительной степени вы должны использовать Amazon S3 или что-то еще. Amazon S3 очень прост в использовании, я понял, как использовать загрузку файлов через час или около того.

3 голосов
/ 16 июня 2011

Если вам не нужна кнопка «Подробнее ...», почему бы вам не убрать строку кода, которая ее добавляет?

1 голос
/ 28 октября 2011

вам нужно внести изменения в этот код с SHKActionSheet.m

+ (SHKActionSheet *)actionSheetForType:(SHKShareType)type
// Add More button
//[as addButtonWithTitle:SHKLocalizedString(@"More...")];


- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

// More
//  else if (buttonIndex == sharers.count)
//  {
//      SHKShareMenu *shareMenu = [[SHKCustomShareMenu alloc]   
//          initWithStyle:UITableViewStyleGrouped];
//      shareMenu.item = item;
//      [[SHK currentHelper] showViewController:shareMenu];
//      [shareMenu release];
//  }

И вы можете редактировать SHKSharers.plist для понравившихся вам услуг.

0 голосов
/ 04 марта 2012

Отличное решение, однако, в моем случае, например, я хочу использовать Facebook, и нет возможности делиться контентом в iOS5. Другая проблема заключается в том, что те, кому нужно приложение, совместимое с iOS4.0 или выше (мой случай), не могут, потому что этот метод работает только с 5.0.

Как это решить? ShareKit Использовать Facebook и Twitter для нативных методов и забыть о совместимости с iOS4.0?

0 голосов
/ 19 октября 2011

Вы можете использовать приведенное ниже определение для dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

вам нужно удалить несколько строк, которые комментируются в приведенном ниже определении.

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
{
    // Sharers
    if (buttonIndex >= 0 && buttonIndex < sharers.count)
    {
        [NSClassFromString([sharers objectAtIndex:buttonIndex]) performSelector:@selector(shareItem:) withObject:item];
    }

    // More
    //else if (buttonIndex == sharers.count)
//  {
//      SHKShareMenu *shareMenu = [[SHKCustomShareMenu alloc] initWithStyle:UITableViewStyleGrouped];
//      shareMenu.item = item;
//      [[SHK currentHelper] showViewController:shareMenu];
//      [shareMenu release];
//  }

    [super dismissWithClickedButtonIndex:buttonIndex animated:animated];
}
...