Swift 4 UIActivityViewController 使用 AirDrop 发送图像

标签 swift swift4

我有问题,我想用电子邮件、消息和 AirDrop 发送图像。目前只有电子邮件和消息有效,当我尝试通过 AirDrop 发送它时,设备会得到一个我无法打开的 .data 文件。我该如何解决这个问题?

@IBAction func sendItButton(_ sender: UIBarButtonItem) {

    let imageShare = [ image! ]
    let activityViewController = UIActivityViewController(activityItems: imageShare , applicationActivities: nil)
    activityViewController.popoverPresentationController?.barButtonItem = sender
    self.present(activityViewController, animated: true, completion: nil)


}

最佳答案

我今天遇到了类似的问题,如果 UIImage 源自 bundle 中的 .jpeg 图像,那么 UIActivityViewController 上似乎存在错误。我使用图像的文件 URL(而不是 UIImage)作为 activityItems,它工作正常。

private func urlForBundleFile(filename: String) -> URL? {
    let components = filename.components(separatedBy: ".")
    return Bundle.main.url(forResource: components[0], withExtension: components[1])
}

let imageURL = urlForBundleFile(filename: "someImage.jpeg")
let activityViewController = UIActivityViewController(activityItems: [imageURL] , applicationActivities: nil)

关于Swift 4 UIActivityViewController 使用 AirDrop 发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51475586/

相关文章:

ios - Segue 不设置目标 View Controller 的属性

ios - 快速更改导航栏颜色时出现覆盖

swift - 合并两个元组数组

swift - + 不可用 : Please use explicit type conversions or Strideable methods for mixed-type arithmetics

iOS - 对 View 中的多个 Tableview 或 Collectionview 使用/传递手势识别器(Swift)

swift - 如何在 .observe 之外使用变量

swift - 使用前缀列表从字符串中删除前缀

ios - 调用函数返回错误: extra argument in call

swift - 如何比较两个字符串以检查它们是否具有相同的字符 Swift 4?

ios - Firebase 数据库未上传