系統(tǒng)分享中的AirDrop不能同時(shí)包含圖片和鏈接, 否則報(bào)錯(cuò)”不能同時(shí)接收...”, 但是其他系統(tǒng)分享可以同時(shí)分享圖片和鏈接
解決方法:
創(chuàng)建UIActivityItemProvider的子類, 在子類中實(shí)現(xiàn)代理方法
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType;
判斷activityType是否為AirDrop類型 UIActivityTypeAirDrop
如果是, 返回nil; 不是, 返回傳入的圖片路徑
將創(chuàng)建的子類添加到ActivityItems中即可
UIActivityViewController *activityViewController =[[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:nil];
PS:
如果需要適配iPad, 需要處理UIActivityViewController的彈出方式
將UIActivityViewController包裹在UIPopoverController中
[[UIPopoverController alloc] initWithContentViewController:activityViewController];
需要設(shè)置彈出的位置,方向等
[self.popup presentPopoverFromRect:CGRectMake(VC.view.frame.size.width/2, VC.view.frame.size.height/4, 0, 0) inView:VC.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
iPhone直接presentViewController即可
代碼如下:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.popup = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
[self.popup presentPopoverFromRect:CGRectMake(VC.view.frame.size.width/2, VC.view.frame.size.height/4, 0, 0) inView:VC.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}else {
[VC presentViewController:activityViewController animated:YES completion:nil];
}