web-dev-qa-db-ja.com

画像とテキストの両方をすばやく共有するにはどうすればよいですか?

Swiftで画像とテキストの両方を共有しようとしています。しかし、Facebook、メッセンジャー、またはwhatsappを介して共有することを選択すると、テキストのみが表示されます(画像は共有されません)。共有にUIActivityViewControllerを使用しています。

これが私のコードです:

func displayShareSheet(latitude:NSString?, longitude:NSString?, image:UIImage?, address:NSString? ) {
    let activityViewController = UIActivityViewController(activityItems: [(latitude as NSString?)!, (longitude as NSString?)!, (image as UIImage?)!, (address as NSString?)!], applicationActivities: nil)
    presentViewController(activityViewController, animated: true, completion: {}
)
}
17
hussain

以下はUIActivityViewControllerコードが機能しています。両方の方法のスクリーンショットも添付されています。

 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)
        }

UIActivityViewControllerの例のスクリーンショット:

enter image description here

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)
    }

SLComposeViewControllerの例のスクリーンショット:

enter image description here

お役に立てれば幸いです。

ご不明な点がありましたらお知らせください。

9
Ketan P

このGitHubリポジトリ にあるVisualActivityViewControllerを使用してこれを実現します

また、ユーザーに共有するテキストと画像の両方を表示する、素敵なカスタムビューも表示されます。

0

これを試してみてくださいこれは私のために働いています!!!

@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
Sanjeet verma