Share text on facebook post - ios

How do I share text and a link for Facebook through UIActivityController? I can add an URL but not text, is this possible to do somehow?
I have the following today:
let activityItems = ["Some text", "", "http://test.com"]
let vc = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
self.presentViewController(vc, animated: true, completion: nil)
For twitter, mail and sms I get both the text and the URL, for Facebook only the URL.
So
Is it possible to add text to the Facebook share?
What does the second empty string parameter do?**

Facebook's policies don't allow you to pre-populate status messages and require all content to be user generated.
Reference.

Related

Add frequently used app for fast sharing swift

I am working on a sharing functionality where I have achieved the basic sharing part and is working perfectly. Below is the code for same
let message = "Download the app from the link below"
//Set the link to share.
if let link = NSURL(string: "http://yoururl.com") {
let objectsToShare = [message,link] as [Any]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityVC.excludedActivityTypes = [UIActivityType.airDrop, UIActivityType.addToReadingList]
self.present(activityVC, animated: true, completion: nil)
}
The above code is working great and gives the output as seen in the screenshot
What I want is to have an extra icon/option to share the content for the frequently used app.
for e.g. I use Whatsapp frequently so the share window should show WhatsApp icon somewhere besides "More".
any help will be highly appreciated. TIA
This can't be done because the share sheet is a library provided by apple and only the user can rearrange icons on their own!

Tweet button enabled by default When Text is more than 280 characters in Twitter share extension

Tweet button enabled by default When Text is more than 280 characters in Twitter share extension.
Twitter can only tweet 280 characters.
Expected behaviour : Tweet button should be disabled by default if characters is more then 280
let shareText = delegate.shareText() // Text is more then 280 characters
if let shareURL = URL(string: url)
var objectsToShare = [shareText, shareURL]
let activityVC = UIActivityViewController(activityItems: objectsToShare as [AnyObject], applicationActivities: nil)
if (activityVC.popoverPresentationController != nil) {
activityVC.popoverPresentationController!.sourceView = shareButton
}
parentVC.present(activityVC, animated: true, completion: nil)
}
This isn't really a programming-related question since it's neither your fault nor Apple's. Once upon a time, the Twitter share sheet was provided by the system, this, however, changed a few years ago.
Now, the share sheet is delivered in conjunction with Twitter's native iOS app, so if it doesn't do the button highlighting properly, it's a bug in their app and shouldn't be your worry. You can nonetheless contact them and ask them to fix it.

Share image and text to whatsapp in single share in swift 4

Could anyone suggest me how to share image with text to whatsaap or any alternative for the same.I have tried it using UIActivityViewController but its possible to share image+text simultaneously on mail bt not on whatsaap .
Help will be appreciated.
Thank you :)
code is as follows:
let textToShare = "Hello world"
let myWebsite = NSURL(string:"https://www.apple.com/")
let img = UIImage(named:"BookImg")
let shareall = [img!,textToShare,myWebsite!] as [Any]
let vc = UIActivityViewController(activityItems: shareall, applicationActivities: nil)
vc.popoverPresentationController?.sourceView = self.view
self.present(vc, animated: true, completion: nil)
Sorry, but you can't post Images and Text together on WhatsApp. However, you can post one at a time. As Whatsapp does not provide any API you can add captions and post images with text.
For your reference , WhatsApp:
http://www.whatsapp.com/faq/en/iphone/23559013
An easy alternative is handing the image part from your server side. Host it and share the link along with the caption. the image will be shown automatically through the URL you are sharing.
It will appear like below,
SS: https://ibb.co/7tpqm8S

Can't add title and description in facebook Share

I am trying to implement the Facebook Share in my quiz app. The content is app store link and quiz score.Which is working fine in simulator but in device shows in different and not showing my description. Here is my Code
func ShareFB() {
let fbVC = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
fbVC?.setInitialText("Hey! I scored \(String(describing: UserDefaults.standard.string(forKey: "TOTAL_SCORE")!)) in Test. This is really interesting! You can also try.")
fbVC?.add(URL(string: "https://itunes.apple.com/us/app/test-app/i?ls=1&mt=8"))
fbVC?.add(UIImage(named: "AppIcon"))
present(fbVC!, animated: true) { _ in
}
}
also attaching screen Shot of simulator and device.
now you cannot share image, text and url simultaneously in facebook. also Facebook does not allow pre filled text now
Why don't you use UIActivityController for such functionality?
Example:
let shareItems = [
"Hey! I scored \(String(describing: UserDefaults.standard.string(forKey: "TOTAL_SCORE")!)) in Test. This is really interesting! You can also try.",
URL(string: "https://itunes.apple.com/us/app/test-app/i?ls=1&mt=8"),
UIImage(named: "AppIcon")] //Add the items you want to share in this array
let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
Edit:
Check this out:
https://stackoverflow.com/a/30020929/5716829
According to Facebook's 2.3 policy rules, you can't share pre-filled content because of policy violation. Facebook does not allow you to share the pre-filled user message parameters with any content the user didn't entered himself.
If you want to share content on Facebook then user has to write/enter himself in Facebook prompt message dialog.
For more info, please visit: https://developers.facebook.com/docs/apps/review/prefill

UIActivityViewController Gmail Share unable to set subject field in swift

I am using UIActivityViewController to share but on gmail when I set its subject specifically it does not set. Any help please.
let eventURL = eventShare[sender.tag]
let eventTitleText = eventTitle[sender.tag]
let contentDescription = eventDescription[sender.tag]
let contentURL:NSURL = NSURL(string:eventURL)!
let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [contentDescription, contentURL],applicationActivities: nil)
activityViewController.setValue("Our Buzz - \(eventTitleText)", forKey: "Subject")
activityViewController.popoverPresentationController?.sourceView = self.view
self.presentViewController(activityViewController, animated: true, completion: nil)
Try "subject" instead of "Subject" (lower case)
This seems to be a bug with the Gmail/Inbox apps. Using "Subject" as the key works correctly for Apple's Mail app but not for Gmail/Inbox. Other keys which also do not work include "subject", "title", "Title".
Another thing to be aware of is that the subject for Gmail/Inbox will include all the items in activityItems that you pass.
Since "Subject" sets the subject, people might be inclined to think that "Body" or some variant may work; but that results in a crash.

Resources