【问题标题】:UIActivityViewController cannot share imageUIActivityViewController 无法分享图片
【发布时间】:2018-06-09 12:44:17
【问题描述】:

我用这种方式分享图片

if let image = viewModels[indexPath.row].image, let viewController = viewController {
    let objectsToShare = [image]
    let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
    viewController.present(activityVC, animated: true, completion: nil)
}

在我的设备上,它可以正常工作。但在另一台设备上,我看到了下一个行为:

1) 图像正确显示在屏幕上

2) Activity 控制器出现

3) 当用户尝试将图像分享到应用程序(例如电报或 whatsapp)时,活动控制器显示人员列表但当他选择分享目标时,控制器冻结一秒钟然后消失(图像尚未发送目标)

4) 将图像保存到照片效果很好。

这是什么?例如,内部 IOS 错误,或者 UIImage 实例有问题?两台设备上的 IOS 版本 11.4

【问题讨论】:

  • image的类型是什么?

标签: ios swift


【解决方案1】:

当我尝试共享空文本文件时,我也有同样的行为。仅过滤非空文本后,我开始可以发送到电报和whatsapp。看来,当您尝试共享长度为 0 字节的内容时,它会引发错误。请检查您的图片。

【讨论】:

    【解决方案2】:

    将图片分享到Messenger或聊天工具时,请尝试以下代码

    对我有用

    func share(withUiImage uiImage : UIImage?){
    
        if let safeImage: UIImage = uiImage,let imagePngData = safeImage.pngData() {
    
            let activityViewController  = UIActivityViewController(activityItems: ["Share Image",imagePngData], applicationActivities: nil)
    
            if let popoverController = activityViewController.popoverPresentationController {
                popoverController.sourceView = self.view
                popoverController.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.maxY, width: 0, height: 0)
                popoverController.permittedArrowDirections = []
            }
    
    
            self.present(activityViewController, animated: true, completion: nil)
    
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 2023-03-03
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      相关资源
      最近更新 更多