UIActivityViewController возвращает «выполнено» как истинное, даже если пользователь отменил действие - PullRequest
0 голосов
/ 13 января 2019

UIActivityViewController возвращает «выполнено» как истинное, даже если пользователь отменил действие

Мы используем UIActivityViewController для обмена URL-адресом и текстом из нашего приложения. Мы используем блок завершения, как определено ниже, чтобы определить, успешно ли выполнено задание или нет.

UIActivityViewController *shareActivity = [[UIActivityViewController alloc] initWithActivityItems:@[ textActivity, urlActivity ] applicationActivities:nil];  

[shareActivity setCompletionWithItemsHandler:^(UIActivityType __nullable activityType, BOOL completed, NSArray *__nullable returnedItems, NSError *__nullable activityError) {  
    if (activityError) {  
        // show an alert  
        return;  
    }  
    if (completed && activityType) {  
        // track the activity type  
        // show an alert          
    }
}];  

Как показано в приведенном выше коде, мы показываем предупреждение, чтобы пользователь понял, что действие завершено. Мы также отслеживаем активность, которая была сделана. Приведенный выше код прекрасно работает для публикации в приложениях, таких как Twitter, Facebook, Mail, Message, Notes, Slack и т. Д. Но для некоторых действий, упомянутых ниже, он не выполняется, поскольку флаг завершения считается «истинным», даже если пользователь отменил действие:

Сбой деятельности:

  • Напоминания (стандартное приложение iOS)
  • почтовое приложение Outlook
  • WhatsApp

Возможно, существует больше приложений, которые могут давать сбой, но я не смог найти указанные выше приложения, поскольку они установлены на моем устройстве.

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 21 января 2019

Instagram, WhatsApp и Messenger не могут отправить false при отмене. Ваш код в порядке.

Я только что отправил сообщение об ошибке, чтобы полностью решить вашу (и мою) проблему :) https://developers.facebook.com/support/bugs/727214027651581/?disable_redirect=0

Жди и надейся.

...