4

일부 텍스트와 URL을 전송할 때 UIActivityViewController을 사용하여 일부 텍스트와 URL을 공유하고 있습니다. 일부 텍스트와 URL을 보낼 때 유용합니다.AirDrop을 사용할 때 UIActivityViewController 완료 핸들러가 완료되었습니다.

사용자가 UIActivityViewController을 취소했는지 또는 실제로 보낸 지 여부에 따라 완료 처리기를 사용하여 추가 작업을 수행해야합니다.

완료 핸들러 (아이폰 OS 7 activityViewController.completionHandler 지금 activityViewController setCompletionWithItemsHandler입니다 아이폰 OS 8에서 더 이상 사용되지 않습니다)는 Airdrop를 통해 보낼 때 그러나 사용자가를 닫 Cancel를 눌러야합니다 emailsmsFacebookTwitter로 보낼 때 제대로 true를 반환하는 BOOL completed 값을 반환 UIActivityViewController 한 번 보낸 및 따라서 나는 항상 완료 처리기에서 false 나타납니다.

UIActivityViewController이 (가) 해제 될 때 Airdrop을 사용하여 사용자가 전송되었음을 알 수있는 방법이 있다면 누구에게 알 수 있습니까?

덕분에

답변

13

나는 당신을 위해 관심의 무언가를 발견했지만 공중 투하 내 iDevices 사이에 작동하지 않았다 불행하게도 나는 그것을 테스트 할 수 있습니다. 미안합니다.

어쨌든, 당신은 activityType 확인 setCompletionWithItemsHandler을 시도 할 수 :

[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 (그냥 추측)의 경우. 희망이 도움이 될 수 있습니다.

+0

당신은 정확합니다. 'activityType'이 airdrop 일 때, 여전히'completed = False'를 리턴하지만 성공했다고 가정하는 것으로 충분합니다. 고맙습니다. – Darren

+0

그것이 효과가있어 기쁩니다. – carlodurso