Ios UIActivityViewController为Twitter和Facebook发布不同的图像和文本
在我的项目中,我使用Ios UIActivityViewController为Twitter和Facebook发布不同的图像和文本,ios,objective-c,facebook,share,uiactivityviewcontroller,Ios,Objective C,Facebook,Share,Uiactivityviewcontroller,在我的项目中,我使用UIActivityViewController进行Facebook、Twitter和电子邮件共享。我想为Facebook、电子邮件和Twitter共享单独的文本和图像。我如何才能做到这一点 -(id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { if ( [activit
UIActivityViewController
进行Facebook、Twitter和电子邮件共享。我想为Facebook、电子邮件和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
}
感谢您的努力。我不再使用UIActivityViewController。我不理解代码示例中的解释:“使用委托创建UIActivity类的子类”。有人能详细说明一下吗?