即使用户取消了活动,UIActivityViewController也会将“已完成”返回为true

时间:2019-01-13 17:24:58

标签: ios objective-c uiactivityviewcontroller

即使用户取消了活动,UIActivityViewController也会将“ completed”返回为true

我们正在使用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,邮件,消息,便笺,Slack等应用程序。但是对于下面提到的某些活动,它失败了,因为即使用户取消了活动,完成标志也变为“ true”:

失败活动:

  • 提醒(iOS股票应用程序)
  • Outlook邮件应用程序
  • WhatsApp

可能有更多的应用程序可能失败了,但是由于我已经在设备上安装了上述应用程序,所以我能够找到它们。

反正有解决此问题的方法吗?

1 个答案:

答案 0 :(得分:0)

Instagram,WhatsApp和Messenger取消后发送失败。您的代码没问题。

我刚刚提交了一个错误,以彻底解决您(也是我的)问题:) https://developers.facebook.com/support/bugs/727214027651581/?disable_redirect=0

等待与希望。