Ada*_*dam 46 uiactivityviewcontroller
我希望能够跟踪用户是否通过Facebook,Twitter等共享,但似乎无法知道选择了哪种方法.在那儿?
小智 46
您可以在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];
Run Code Online (Sandbox Code Playgroud)
系统内置支持的内置活动类型.
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;
Run Code Online (Sandbox Code Playgroud)
为iOS 8编辑
请注意,这将在iOS 8中生成编译器警告,您需要使用该setCompletionWithItemsHandler方法而不是setCompletionHandler方法.
更换:
[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {
Run Code Online (Sandbox Code Playgroud)
有:
[activityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
Run Code Online (Sandbox Code Playgroud)
All*_*eld 26
在Swift 4中:
activityViewController.completionWithItemsHandler = { activity, success, items, error in
if !success{
print("cancelled")
return
}
if activity == .postToTwitter {
print("twitter")
}
if activity == .mail {
print("mail")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16517 次 |
| 最近记录: |