Сообщение об ошибке Airdrop: "не удается получить все эти элементы одновременно"
Я использую следующий код, чтобы поделиться изображением, текстом и URL-адресом, используя UIActivityViewController. Все работает отлично, за исключением того, что когда пользователь выбирает AirDrop, он получает сообщение "не может получить все эти элементы одновременно". Если я только делюсь изображением, то AirDrop работает. Мне нужен текст и URL для электронной почты, Facebook, методы обмена Twitter.
Есть ли способ сохранить текст и URL и заставить AirDrop только делиться изображением, в то время как Facebook, электронная почта, методы совместного использования в Twitter продолжают использовать текст и URL вместе с изображением, которым я пытаюсь поделиться?
NSString *text = [NSString stringWithFormat:@"I made this image using %@ iOS app. Here is the link to download it:", [CloudHelper appName]];
NSURL *url = [NSURL URLWithString:APP_URL];
UIActivityViewController *activityController =
[[UIActivityViewController alloc]
initWithActivityItems:@[text, url, myImage]
applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
1 ответ
Вы хотели бы создать и поделиться тремя объектами, которые соответствуют UIActivityItemSource, где один возвращает строку, один изображение и один URL. Затем, когда вызывается обратный вызов делегата, запрашивающий элемент, вы проверяете, какой тип активности был выбран (Facebook, Twitter, airdrop и т. Д.), И возвращаете nil, если этот элемент не применяется.
Таким образом, в случае воздушного потока, только источник элемента изображения вернет ненулевое значение. Вы можете взглянуть на пример кода Airdrop, чтобы получить примеры того, как реализовать UIActivityItemSource.