ios - 即使用户取消了活动,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 等应用程序。但是对于下面提到的某些活动,它会失败,因为即使用户取消了活动,完成的标志也会显示为“真”:
失败的活动:
- 提醒(iOS 股票应用程序)
- Outlook 邮件应用程序
可能有更多应用程序可能会失败,但我能够找到上述应用程序,因为我已将它们安装在我的设备上。
有没有办法解决这个问题?
解决方案
Instagram、WhatsApp 和 Messenger 在取消时无法发送虚假信息。你的代码没问题。
我刚刚提交了一个错误来完全解决您的(也是我的)问题:) https://developers.facebook.com/support/bugs/727214027651581/?disable_redirect=0
等待和希望。
推荐阅读
- ios - Set dynamic height for TabView in SwiftUI for Custom Views
- database - Some HTML Tags not been store in WordPress Database
- http-headers - Header Image size
- javascript - What is the difference between row.append and $$.filter
- java - 带有 FXML JavaFX 的 HashMap 找不到我的密钥
- java - Why my Java code is working in windows and not on Mac?
- kotlin - Is it safe to call a (kotlin coroutine) withContext within another withContext?
- php - Laravel Blade - section renders in the wrong place
- python - Resize dock to height of visible contents
- .profile - 如何使用通配符向我的 .profile 添加别名