热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11:UIActivityViewController无法成功将UIImage共享给第三方应用

如何解决《iOS11:UIActivityViewController无法成功将UIImage共享给第三方应用》经验,为你挑选了1个好方法。

所以在iOS10中如果你想用UIActivityViewController共享一个图像,你只需要编写一些看起来像的swift3代码:

func shareTapped() {       
        if let image = imageView.image {
            let vc = UIActivityViewController(activityItems: [image], applicationActivities: [])
            vc.popoverPresentationController?.barButtOnItem= navigationItem.rightBarButtonItem
            present(vc, animated: true, completion: nil)
        }

如果您想将图像保存到相机胶卷(假设您已经要求相应的权限),或者想要通过信使,空投或任何其他Apple实现共享,则此方法似乎仍然有效.

不幸的是,如果您尝试通过Twitter,Facebook,Instagram等分享图像,他们将无法成功附加图像,并会抛出错误或无声地失败.

我花了很多时间搜索谷歌,youtube和stackoverflow,一切都指向iOS10解决方案,自iOS11发布以来什么都没有.

我应该注意,如果你想在这些行上传递字符串,url或其他东西,这个函数仍然可以正常工作.



1> Causaelity..:

短版/ TLDR

通过首先将图像转换为数据,然后将该对象传递给UIActivityViewController,可以在尝试传递图像时解决Twitter/Facebook问题:

   if let jpgImage = UIImageJPEGRepresentation(image, 0.8) {
       let vc = UIActivityViewController(activityItems: [jpgImage], applicationActivities: [])
   }

可以在下面找到更长的外植和完整代码:

版本更长

我联系了一些专家,他们都暗示它应该正常工作,但即使在查看他们的示例应用程序时,他们都表现出同样的问题.所以我最终认为这可能是Twitter或Facebook的一个问题,因为共享到Apple工具正常工作.然后我开始玩照片应用程序,并决定点击那里的分享按钮,瞧,它与Twitter和Facebook合作!这让我想知道这是否意味着需要一些增量设置来实现它.在尝试了许多不同的事情后,我终于找到了一种有效的方法 通过PNG或JPG将图像转换为数据并将新对象传递给您的activityItems解决了Twitter/Facebook问题,并且似乎仍然适用于其他所有问题.将图像转换为JPG的更新后的swift4/ios11代码如下所示:

@objc func shareTapped() {
        if let image = imageView.image {
            if let jpgImage = UIImageJPEGRepresentation(image, 0.8) {
                let vc = UIActivityViewController(activityItems: [jpgImage], applicationActivities: [])
                // add the following line if using doing universal and need iPad
                vc.popoverPresentationController?.barButtOnItem= navigationItem.rightBarButtonItem
                present(vc, animated: true)
            }
        }
    }

希望这可以帮助其他任何自iOS11以来一直在努力分享图像的人.


推荐阅读
author-avatar
灬L龙灬_423
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有