52

ユーザーがFacebookやTwitterなどで共有したかどうかを追跡できるようにしたいのですが、どの方法が選択されたかを知る方法がないようです。ある?

4

4 に答える 4

48

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) {
于 2013-01-05T02:28:30.847 に答える
31

Swift 4 では:

activityViewController.completionWithItemsHandler = { activity, success, items, error in
        if !success{
            print("cancelled")
            return
        }

        if activity == .postToTwitter {
            print("twitter")
        }

        if activity == .mail {
            print("mail")
        }
    }
于 2015-11-28T02:11:05.617 に答える