繁体   English   中英

UIActivityViewController为Twitter和Facebook发布不同的图像和文本

[英]UIActivityViewController to post different image and text for Twitter and Facebook

在我的项目中,我正在使用UIActivityViewController进行Facebook,Twitter和电子邮件共享。我想为Facebook,Email和Twitter共享单独的文本和图像。我该怎么做?

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

    if ( [activityType isEqualToString:UIActivityTypePostToTwitter] )
        return _shareText1;
    if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
        return _shareText2;
    if ( [activityType isEqualToString:UIActivityTypeMail] )
        return _shareText3;

    return nil;


}

我在UIActivityItemProvider的子类中使用了上面的代码,并传递了要从我的UIViewcontroller共享的文本。如何使用文本返回图像?通过返回NSDictionary来返回吗?

创建UIActivity子类并在UIActivityViewController中使用的最佳方法。

-(void)sharePressed:(id)sender
{  

 GooglePlus *gPlus = [[GooglePlus alloc]init];

 FacebookShare *fb =[[FacebookShare alloc]init];

NSString *textToShare = @"Text u want to share";

NSURL *myWebsite = [NSURL      URLWithString:@"http://www.mywebsite.com/"];

UIImage *image =[UIImage imageNamed:@"apple.png"];
}

NSArray *objectsToShare = @[textToShare, myWebsite,image];

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:    


[NSArray arrayWithObjects:gPlus,fb,nil]];
activityVC.completionHandler = ^(NSString *activityType, BOOL completed)
{
    //  NSLog(@" activityType: %@", activityType);

    //  NSLog(@" completed: %i", completed);

};


NSArray *excludedActivities = @[UIActivityTypePostToTwitter,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo,UIActivityTypePostToFacebook];
activityVC.excludedActivityTypes = excludedActivities;
[self presentViewController:activityVC animated:YES completion:nil];


// Create the subclass the UIActivity Class using delegates 

-(NSString *)activityType
{


return @"GooglePlus";

//CustomActivity 
}


-(NSString *)activityTitle
{


 return @"GooglePlus ";

// use your custom ActivityTitle  
}

-(UIImage *)_activityImage
{


  // Note: These images need to have a transparent background and I recommend these sizes:
  // iPadShare@2x should be 126 px, iPadShare should be 53 px, iPhoneShare@2x should be 100
  // px, and iPhoneShare should be 50 px. I found these sizes to work for what I was making.


    return [UIImage imageNamed:@"G+-60x60.png"];

}

-(BOOL)canPerformWithActivityItems:(NSArray *)activityItems
{

NSLog(@"%s", __FUNCTION__);

return YES;
}

-(void)prepareWithActivityItems:(NSArray *)activityItems
{

NSLog(@"%s",__FUNCTION__);
}

-(UIViewController *)activityViewCtroller
{

 NSLog(@"%s",__FUNCTION__);

return nil;
}

-(void)performActivity
{

  // share what stuff u want to share 

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM