需在用戶通過 UIActivityViewController 發送郵件/分享成功後執行業務邏輯(如記錄數據庫)。
UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[vc setCompletionHandler:^(NSString *activityType, BOOL completed) {
if (completed) {
NSString *msg = nil;
if ([activityType isEqualToString:UIActivityTypeMail]) msg = @"郵件發送成功";
else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) msg = @"推特分享成功";
else if ([activityType isEqualToString:UIActivityTypePostToFacebook]) msg = @"Facebook 分享成功";
// 執行業務邏輯
NSLog(@"%@", msg);
} else {
// 用戶取消或失敗
}
}];
[self presentViewController:vc animated:YES completion:nil];
activityType:標識用戶選擇的分享渠道(系統預定義常量)。completed:YES 表示操作完成(發送/發布成功),NO 表示取消或失敗。注意:部分第三方應用可能不回調 completed=YES,僅作參考。