UIActivityViewController - 有没有办法知道选择了哪个事件?

标签 uiactivityviewcontroller

我希望能够跟踪用户是否通过 facebook、twitter 等共享,但似乎无法知道选择了哪种方法。有没有?

最佳答案

您可以在 setCompletionHandler 中使用事件类型

UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil];

[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {
    if([activityType isEqualToString: UIActivityTypeMail]){
        NSLog(@"Mail");
    }
    if([activityType isEqualToString: UIActivityTypePostToFacebook]){
        NSLog(@"Facebook");
    }

}];
[self presentViewController:activityVC animated:TRUE completion:nil];

系统内置支持的内置事件类型。

NSString *const UIActivityTypePostToFacebook;

NSString *const UIActivityTypePostToTwitter;

NSString *const UIActivityTypePostToWeibo;

NSString *const UIActivityTypeMessage;

NSString *const UIActivityTypeMail;

NSString *const UIActivityTypePrint;

NSString *const UIActivityTypeCopyToPasteboard;

NSString *const UIActivityTypeAssignToContact;

NSString *const UIActivityTypeSaveToCameraRoll;

针对 iOS 8 进行了编辑

请注意,这会在 iOS 8 中生成编译器警告,您需要使用 setCompletionWithItemsHandler 方法而不是 setCompletionHandler 方法。

替换:

[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {

与:

[activityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed,  NSArray *returnedItems, NSError *activityError) {

关于UIActivityViewController - 有没有办法知道选择了哪个事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149532/

相关文章:

xcode - 从 WebView Xcode 共享 PDF 文件

iphone - iOS 7 中的 UIActivityViewController

swift - 尝试将图像保存到照片库时 iOS 10 应用程序崩溃

ios - 强制手动关闭 iOS 共享表 Swift iOS 8 和 9

ios - 通过 UIActivityViewController 共享包含数据的文件

ios - 使用 UIActivityViewController 提供缩略图

ios - UIActivityViewController 图像共享不适用于 Whatsapp

ios - UIActivityViewController 完成处理程序在 View Controller 从屏幕上消失之前执行

iOS : activityType doesn't work on UIactivityViewController