4

UIActivityViewController用来分享一些文本和 url,这在发送一些文本和 url 时效果很好。

我目前需要使用完成处理程序来执行其他操作,具体取决于用户是取消了UIActivityViewController还是实际发送了一些东西。

完成处理程序(activityViewController.completionHandler对于 iOS 7 在现在的 iOS 8 中已弃用activityViewController setCompletionWithItemsHandler)返回一个在发送时BOOL completed正确返回的值,但是当通过用户发送时必须按下以关闭一次发送,因此我总是从完成处理程序收到一个。trueemail sms Facebook TwitterAirdropCancelUIActivityViewControllerfalse

有谁知道在被解雇Airdrop时是否有办法知道用户已经发送了使用?UIActivityViewController

谢谢

4

1 回答 1

13

我找到了你感兴趣的东西,但不幸的是我无法测试它,因为 AirDrop 不想在我的 iDevices 之间运行。对于那个很抱歉。

无论如何,您可以尝试setCompletionWithItemsHandler检查activityType

[activityViewController setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
    NSLog(@"completed: %@, \n%d, \n%@, \n%@,", activityType, completed, returnedItems, activityError);

}];

如果activityType是类型com.apple.airdrop.etc(只是猜测),那么用户已经点击了图标。希望它可以提供帮助。

于 2014-10-28T23:55:22.617 回答