2015-03-02 2 views
0

Пытается поделиться приложением в социальной медианной, электронной почте и сообщении. Поскольку электронная почта и сообщение работают нормально для меня. Но Facebook и твиттер не все показывают до UIActivityViewControllerНевозможно добавить Facebook и Twitter в UIActivityViewController

Ниже приведен код, который я пытаюсь.

NSArray *excludeActivities = @[UIActivityTypeAirDrop, 
           UIActivityTypePostToFacebook, 
           UIActivityTypePostToTwitter]; 
UIActivityViewController *activityViewController = 
[[UIActivityViewController alloc] initWithActivityItems:@[string, URL] 
            applicationActivities:nil]; 
activityViewController.excludedActivityTypes = excludeActivities; 
[self presentViewController:activityViewController 
            animated:YES 
           completion:^{ 
           }]; 

- (id)activityViewController:(UIActivityViewController *)activityViewController 
     itemForActivityType:(NSString *)activityType 
{ 
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) { 
     return NSLocalizedString(@"calling facebook",); 
    } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 
     return NSLocalizedString(@"calling twitter",); 
    } else { 
     return nil; 
    } 
} 

@ Все Пожалуйста, дайте мне знать, что я должен делать.

+0

добавление дополнительной точки при работе над этим. Как показать пользователю, что facebook, твиттер не зарегистрирован в настройках. Это поможет пользователям, если я покажу предупреждение для конечного пользователя о включении его на facebook, twitter, чтобы включить настройку, чтобы опубликовать приложение в соответствующей социальной сети. – KkMIW

ответ

2

Для этого просто создать один класс для этого, как это.

SharingActivityProvider.h 

#import <Foundation/Foundation.h> 


@interface SharingActivityProvider : UIActivityItemProvider 
@end 


**SharingActivityProvider.m** 

#import "SharingActivityProvider.h" 


@implementation SharingActivityProvider { 

} 

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { 

    // Create the default sharing string 
    NSString *shareString = @""; 

    // customize the sharing string for facebook, twitter, weibo, and google+ 
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) { 
     shareString = [NSString stringWithFormat:@"Attention Facebook:%@", shareString]; 
    } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 
     shareString = [NSString stringWithFormat:@"Attention Twitter:%@", shareString]; 
    } else if ([activityType isEqualToString:UIActivityTypePostToWeibo]) { 
     shareString = [NSString stringWithFormat:@"Attention Weibo:%@", shareString]; 
    } 

    return shareString; 
} 

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { 
    return @""; 
} 

@end 

Тогда, после использования ниже кода, предположим, что действие кнопки.

-(IBAction)shareAppTapped:(id)sender{ 

    SharingActivityProvider *sharingActivityProvider = [[SharingActivityProvider alloc] init]; 

    NSArray *activityProviders = @[sharingActivityProvider,@"what ever text"]; 
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityProviders applicationActivities:nil]; 

    // tell the activity view controller which activities should NOT appear 
    activityViewController.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll]; 

    activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentViewController:activityViewController animated:YES completion:nil]; 
    // [self.btnShareApp setBackgroundColor:OnebackgroundColorTable]; 
} 
+0

Я попробовал MVC подошел, который ценится один. но все же его теперь показывает facebook, твиттер в нем. Я использую xcode 6.1.1 Цель развертывания IOS 8.1 – KkMIW

+0

В каком разделе вы проверяете это? Айфон 6 ? –

+0

Я использую Iphone 5c. [его устройство] – KkMIW

0

Одна ошибка здесь excludeactivities также есть facebook и twitter. Следовательно, это не будет показываться никакими средствами.

ПримечаниеexcludedActivityTypes должно быть, которое вам не нужно в контроллере.

Например, он должен быть:

NSArray *excludeActivities = @[UIActivityTypePostToWeibo, 
           UIActivityTypeMessage, 
           UIActivityTypeAssignToContact, 
           UIActivityTypeSaveToCameraRoll, 
           UIActivityTypeAddToReadingList, 
           UIActivityTypePostToFlickr, 
           UIActivityTypePostToVimeo, 
           UIActivityTypePostToTencentWeibo]; 
+0

Спасибо, Даже его не показывают значки facebook и twitter в uiactivityviewcontroller. – KkMIW