首页 > 解决方案 > 即使用户取消了活动,UIActivityViewController 也会返回“已完成”为真

问题描述

即使用户取消了活动,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 等应用程序。但是对于下面提到的某些活动,它会失败,因为即使用户取消了活动,完成的标志也会显示为“真”:

失败的活动:

可能有更多应用程序可能会失败,但我能够找到上述应用程序,因为我已将它们安装在我的设备上。

有没有办法解决这个问题?

标签: iosobjective-cuiactivityviewcontroller

解决方案


Instagram、WhatsApp 和 Messenger 在取消时无法发送虚假信息。你的代码没问题。

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

等待和希望。


推荐阅读