4

我使用UIActivityViewController來共享一些文本和網址,它在發送一些文本和網址時非常有用。UIActivityViewController完成處理程序!使用AirDrop時完成!

我目前需要使用完成處理程序來執行其他操作,具體取決於用戶是取消了UIActivityViewController還是實際發送了一些內容。

的完成處理程序(activityViewController.completionHandler爲iOS 7在IOS 8這是現在activityViewController setCompletionWithItemsHandler已棄用)返回一個BOOL completed值與emailsmsFacebookTwitter發送時正確返回true然而經由Airdrop發送時,用戶必須按下Cancel以關閉該UIActivityViewController一旦發送,因此我總是收到來自完成處理程序的false

有誰知道是否有方法知道用戶在UIActivityViewController被解僱時使用Airdrop發送了?

感謝

回答

13

我發現對你感興趣的東西,但不幸的是我無法測試它作爲空投不想讓我的iDevices之間運行。對於那個很抱歉。

不管怎麼說,你可以嘗試setCompletionWithItemsHandler檢查activityType

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

}]; 

如果activityTypecom.apple.airdrop.etc型(只是猜測),那麼該用戶已拍了拍圖標。希望它可以幫助。

+0

你是正確的謝謝。當'activityType'空投時,它仍然會返回'completed = False',但它足以假定它是成功的。謝謝。 – Darren 2014-10-29 12:41:09

+0

我很高興它的工作。 – carlodurso 2014-10-29 14:45:02