UIActivityViewController完成处理程序在使用AirDrop时完成!
我使用UIActivityViewController
来分享一些文本和url,这在发送一些文本和url时效果很好。
我目前需要使用完成处理程序来执行其他操作取决于用户是否取消了UIActivityViewController
或实际发送的东西。
完成处理程序(iOS 7中的activityViewController.completionHandler
在iOS 8中被弃用,现在是activityViewController setCompletionWithItemsHandler
)返回一个BOOL completed
值,当使用email
sms
时,返回true
Facebook
Twitter
但是当通过Airdrop
发送时,用户必须按Cancel
来closuresUIActivityViewController
一旦发送,因此我总是从完成处理程序收到一个false
。
有谁知道是否有一种方法知道用户已经发送使用Airdrop
时UIActivityViewController
被解雇?
谢谢
我发现你感兴趣的东西,但不幸的是我无法testing它,因为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
的types是com.apple.airdrop.etc
(只是一个猜测),那么用户已经点击了图标。 希望它可以帮助。