UIActivityViewController:如何获取活动是否已完成

15

我正在使用 UIActivityViewController,其中我添加了Facebook、Twitter和电子邮件。 在我完成任何一个这些功能的共享活动后,如何获取成功回调。

欢迎提供任何想法。enter image description here

3个回答

21

Swift 语法:

let avc = UIActivityViewController(activityItems: [image], applicationActivities: nil)
avc.completionWithItemsHandler = { (activity, success, items, error) in
     print(success ? "SUCCESS!" : "FAILURE")
}

self.presentViewController(avc, animated: true, completion: nil)

8

像这样设置完成处理程序

[controller setCompletionHandler:^(NSString *act, BOOL success)
     {

         NSLog(@"act type %@",act);
         NSString *result = nil;

         if ( [act isEqualToString:UIActivityTypePostToTwitter] )  result = @"POST-SHARED-SUCCESSFULLY";
         if ( [act isEqualToString:UIActivityTypePostToFacebook] ) result = @"POST-SHARED-SUCCESSFULLY";

         if (success)
         {
             UIAlertView *av = [[UIAlertView alloc] initWithTitle:result message:nil delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", nil) otherButtonTitles:nil];
             [av show];
         }
         else
         {
             UIAlertView *av = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ERROR", nil) message:nil delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", nil) otherButtonTitles:nil];
             [av show];
         }
     }];

1

setCompletionHandler已被废弃。因此,如果您正在使用iOS 8.0+,这里是解决方案。

activityViewController.completionWithItemsHandler = ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
    // When the completed flag is YES, the user performed a specific activity
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接