【问题标题】:UIActivityViewController completion handler is !completed when using AirDropUIActivityViewController 完成处理程序在使用 AirDrop 时完成!
【发布时间】:2014-10-17 12:30:24
【问题描述】:

我正在使用 UIActivityViewController 分享一些文本和 url,这在发送一些文本和 url 时效果很好。

我目前需要使用完成处理程序来执行其他操作,具体取决于用户是取消了UIActivityViewController 还是实际发送了一些东西。

完成处理程序(iOS 7 中的activityViewController.completionHandler 在 iOS 8 中已弃用,现在为 activityViewController setCompletionWithItemsHandler)返回一个 BOOL completed 值,该值在使用 email 发送时正确返回 true sms Facebook @ 987654330@ 但是,当通过Airdrop 发送时,用户必须按Cancel 以关闭发送后的UIActivityViewController,因此我总是从完成处理程序收到false

有没有人知道当UIActivityViewController 被关闭时,是否有办法知道用户使用Airdrop 发送了邮件?

谢谢

【问题讨论】:

    标签: ios uiactivityviewcontroller uiactivity uiactivitytypeairdrop


    【解决方案1】:

    我发现了一些你感兴趣的东西,但遗憾的是我无法测试它,因为 AirDrop 不想在我的 iDevices 之间运行。对此感到抱歉。

    无论如何,您可以尝试setCompletionWithItemsHandler 检查activityType

    [activityViewController setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
        NSLog(@"completed: %@, \n%d, \n%@, \n%@,", activityType, completed, returnedItems, activityError);
    
    }];
    

    如果activityTypecom.apple.airdrop.etc 类型(只是猜测),那么用户点击了图标。希望对您有所帮助。

    【讨论】:

    • 你说得对,谢谢。当activityType 是空投时,它仍然返回completed=False 但是它足以假设它是成功的。谢谢。
    猜你喜欢
    • 2012-09-15
    • 2021-01-26
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    相关资源
    最近更新 更多