尝试共享社交位数,电子邮件和消息上的应用程序。
由于电子邮件和消息对我来说工作正常。
但是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;
    }
}


@所有
请让我知道我需要做什么。

最佳答案

为此,只需为此创建一个类。

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];
}

10-07 21:24