与AirDrop共享后的UIActivityItemProvider问题

时间:2014-03-31 14:47:37

标签: ios airdrop

我正在使用UIActivityViewControllerUIActivityItemProvider的自定义子类。除了执行以下序列之外,我提供的每个UIActivityType我的提供商都可以正常工作:

  1. 显示UIActivityViewController
  2. 使用AirDrop与其他设备共享
  3. 成功分享到其他设备后,通过发送电子邮件进行分享
  4. 错误的行为是我有一个提供NSString个实例的文本提供程序,而这些实例并没有出现在电子邮件的主题和正文中。 预期的行为是邮件撰写对话框应包含文本提供者提供的主题和正文。

    执行此序列时,我在控制台中收到以下警告:

      

    2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< MyActivityItemProvider:0x170296620>忽略(复制,执行或完成)

         

    2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< TestActivityItemProvider:0x170480a00>忽略(复制,执行或完成)

         

    2014-03-27 18:35:09.065 TestApp [1347:60b]警告 - UIActivityItemProvider< WonderfulActivityItemProvider:0x1704b7760>忽略(复制,执行或完成)

    每个警告对应于我提供的UIActivityItemProvider之一。 在这些提供程序中,- (id)item方法以这种方式实现:

    - (id)item
    {
        if ([self.activityType isEqualToString:UIActivityTypeMail]) {
            return @"MyMailString";
        }
        return @""; // placeholder item
    }
    

    通过这种实现,我能够创建一个能够为Facebook,Twitter,Mail等提供不同字符串的提供商。 通过AirDrop共享时,我共享一个没有任何文本的pdf文件。由于AirDrop的共享并未关闭UIActivityViewController,因此所有其他«活动»在AirDrop共享后应该正常工作。谢谢你的帮助!

0 个答案:

没有答案