Swift UIActivityViewController图像共享无法正常工作

Din*_*kar 12 ios swift

我正在UIActivityViewController用来分享图片.WhatsApp最近的更改允许分享后我能够在共享选项中看到WhatsApp.我正在分享图像和消息,我可以看到短信,但我无法共享图像.相同的代码适用于Viber,FB,Twitter等.不确定WhatsApp我缺少什么.

func shareImage() {
    var messageStr:String  = "Check out my awesome photo!"
    var img: UIImage = currentPhoto!

    var shareItems:Array = [img, messageStr]

    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
    activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]

    self.presentViewController(activityViewController, animated: true, completion: nil)

}
Run Code Online (Sandbox Code Playgroud)

Din*_*kar 20

似乎WhatsApp只在阵列包含图像而不是图像和文本的组合时才共享图像.

func shareImage() {
    //var messageStr:String  = "Check out my awesome iPicSafe photo!"
    var img: UIImage = currentPhoto!
    //var shareItems:Array = [img, messageStr]
    var shareItems:Array = [img]
    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
    activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]
    self.presentViewController(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)


Zai*_*han 5

分享文字|| 图像试试这个Swift.

func share(shareText shareText:String?,shareImage:UIImage?){

    var objectsToShare = [AnyObject]()

    if let shareTextObj = shareText{
        objectsToShare.append(shareTextObj)
    }

    if let shareImageObj = shareImage{
        objectsToShare.append(shareImageObj)
    }

    if shareText != nil || shareImage != nil{
        let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
        activityViewController.popoverPresentationController?.sourceView = self.view

        presentViewController(activityViewController, animated: true, completion: nil)
    }else{
        print("There is nothing to share")
    }
}
Run Code Online (Sandbox Code Playgroud)

分享这样的电话:

let imageToShare = UIImage(named: "myImage")
share(shareText: "Sharing this text", shareImage: imageToShare)
Run Code Online (Sandbox Code Playgroud)

  • 建议:更改`shareText!= nil || shareImage!= nil`到`objectsToShare.count> 0` (2认同)
  • Zaid Pathan --- 不适合我它唯一的共享文本或只共享图像,而不是两者......我也尝试过使用 facebook 和 whatsapp (2认同)