使用AirDrop时,UIActivityViewController完成处理程序已完成

Dar*_*ren 4 ios uiactivity uiactivityviewcontroller uiactivitytypeairdrop

我正在使用UIActivityViewController分享一些文本和网址,它们在发送一些文本和网址时效果很好.

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

完成处理程序(activityViewController.completionHandler对于iOS 7在iOS 8中已弃用)现在activityViewController setCompletionWithItemsHandler返回一个BOOL completed值,该值true在发送email sms Facebook Twitter时正确返回,但是当通过Airdrop用户发送时必须按下Cancel以关闭UIActivityViewController一次发送,因此我总是false从完成处理程序接收a .

有没有人知道有没有办法知道用户AirdropUIActivityViewController被解雇时已经使用了?

谢谢

car*_*rso 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);

}];
Run Code Online (Sandbox Code Playgroud)

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