How to share both Image and Text together in swift?

前端 未结 3 1651
無奈伤痛
無奈伤痛 2021-02-07 04:06

I am trying to share both image and text in swift. but when i choose to share via facebook, messenger or whatsapp it only gives text (image is not shared). I am using UIActivity

相关标签:
3条回答
  • 2021-02-07 04:26

    Try this This is working for me!!!

    @IBAction func btnExport(sender: AnyObject)
    {
    
        print("Export")
        let someText:String = "Hello want to share text also"
        let objectsToShare:UIImage = self.imgView.image!
        let sharedObjects:[AnyObject] = [objectsToShare,someText]
        let activityViewController = UIActivityViewController(activityItems : sharedObjects, applicationActivities: nil)
        activityViewController.popoverPresentationController?.sourceView = self.view
    
        activityViewController.excludedActivityTypes = [ UIActivityTypeAirDrop, UIActivityTypePostToFacebook,UIActivityTypePostToTwitter]
    
        self.presentViewController(activityViewController, animated: true, completion: nil)
    }
    
    0 讨论(0)
  • 2021-02-07 04:38

    Below is UIActivityViewController code is working for me. also attached screen shot for both the methods.

     func shareImage() {
                let img = UIImage(named: "SoSampleImage")
                let messageStr = "Ketan SO"
                let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [img!, messageStr], applicationActivities: nil)
                activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]
                self.presentViewController(activityViewController, animated: true, completion: nil)
            }
    

    Screen shot for UIActivityViewController example :

    Alternative Using SLComposeViewController :

    func share(){
            let img = UIImage(named: "SoSampleImage")
            let composeSheet = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
            composeSheet.setInitialText("Hello, Ketan!")
            composeSheet.addImage(img)
            self.presentViewController(composeSheet, animated: true, completion: nil)
        }
    

    Screen shot for SLComposeViewController example :

    Hope it will help you..

    Do let me know if you have any query.

    0 讨论(0)
  • 2021-02-07 04:51

    I achieve this with the help of VisualActivityViewController which is present in this GitHub repository

    It gives me a nice, custom view as well--one that shows the user both the text and image that the user is going to share.

    0 讨论(0)
提交回复
热议问题