How to share an URL Scheme link to social app - ios

I want to share an URL scheme link to social app so that when the user open social page on safari, when they click on the link, the URL scheme will call to the app I set. But when I share, it only share the text. How to share the link instead of the text.
Here is the code:
#IBAction func shareButtonAction(sender: AnyObject) {
print("share")
let myShare = "TestSafari://"
let shareVC: UIActivityViewController = UIActivityViewController(activityItems: [myShare], applicationActivities: nil)
self.presentViewController(shareVC, animated: true, completion: nil)
}

You probably need to put a text first then the url, in that particular order. Try this:
let string: String = ...
let URL: NSURL = ...
let shareVC = UIActivityViewController(activityItems: [string, URL])

let activityViewController = UIActivityViewController(
activityItems: [image],
applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypeMessage,UIActivityTypeMail,UIActivityTypeCopyToPasteboard,UIActivityTypeAirDrop];
presentViewController(activityViewController, animated: true, completion: nil)
use this code for Present ActivityViewController only change activityItems to your string.

Related

UIActivityViewController - Unable to exclude "My App" in ExcludedActivityTypes

I have a situation. I launch an activity controller to share files but I want my application not to appear in the view.
if let url = FileManager.filePath(forKey: documentModel.localUrl ?? "", directory: "file") {
let documento = NSData(contentsOf: url)
let activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivity.ActivityType(rawValue: "mx.com.myapp.txt")]
activityViewController.popoverPresentationController?.sourceView=self.view
present(activityViewController, animated: true, completion: nil)

iOS : customize of activityViewController

hi I implemented activityViewController and my activityItems is text when I press button this will pop up and I choose mail IMPORTENT : when I choose it my text in the (activityItems) go to the message body but I want it to go in sender message textfield (To :)
how should I implement this???
#IBAction func activityView(_ sender: UIButton) {
let text = "Mahdi.m#email.com"
let img = UIImage(named: "Buliding")!
let activityViewController = UIActivityViewController(activityItems: [text, img], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
activityViewController.excludedActivityTypes = [ UIActivityType.airDrop]
self.present(activityViewController, animated: true, completion: nil)
}

UIActivityController to share URL file

I want to share an URL file that has been created in the app and a text. But it seems it only can share text and not any data like URL or UIImage.
The code I am using:
let sharedVideo = Video(Title: _data[1], VideoID: _data[0], Duration: _data[3], ViewCount: _data[2])
let sharedURL = VideoManager.exportData(video: sharedVideo)
let shareItems:Array = [sharedURL,"check this out baby!"] as [Any]
let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
Also I use an UIImage object instead of sharedURL to see If it has problem with URL or not.
It doesn't work even with an image file. When I click on share button inside UIActivityViewController, It works just for text, no URL nor image.
I am using Swift 3 in Xcode 8.
Thanks.
PS: I am sure about sharedURL object that it isn't nil nor undefined.
Try this:
#IBAction func btnExport(sender: AnyObject)
{
let someText:String = "Hello want to share text also"
let objectsToShare:URL = URL(string: "http://www.google.com")!
let sharedObjects:[AnyObject] = [objectsToShare as AnyObject,someText as AnyObject]
let activityViewController = UIActivityViewController(activityItems : sharedObjects, applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.view
activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook,UIActivityType.postToTwitter,UIActivityType.mail]
self.present(activityViewController, animated: true, completion: nil)
}
Simplified solution working with Swift 5+
let url = URL(string: shareUrlString)!
let text = "Some text that you want shared"
let activity = UIActivityViewController(activityItems: [url, text], applicationActivities: nil)
present(activity, animated: true)

UIActivityViewController chosing SMS : How to add/display a CANCEL button?

#IBAction func shareButtonClicked(sender: UIButton) {
let textToShare = "Swift is awesome! Check out this website about it!"
if let myWebsite = NSURL(string: "http://www.codingexplorer.com/") {
let objectsToShare = [textToShare, myWebsite]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityVC.popoverPresentationController?.sourceView = sender
self.presentViewController(activityVC, animated: true, completion: nil)
}
}
Hi, I add sms sharing to my app, everything works fine except I'd like to be able to CANCEL an SMS after I started it.
No cancel Button is displayed in the uinavigationbar for SMS while it is present for Mail, Twitter or Facebook.
Thanks for your help

Sharing does not work with Whatsapp and Facebook - swift project

I'm developing an iOS application using swift and firebase.
I'm trying to add sharing ability, where the user can share some information from firebase to social networkings apps.
Here's the button I added:
#IBAction func text2share(sender: AnyObject) {
let text2share = "Check out this 😍✨ \r\n Business Name: \(self.BusinessNameL.text!) \r\n Phone: \(self.PhoneNumberTV.text!) \r\n Category: \(self.CategoryL.text!) \r\n Website: \(self.Website1TV.text!) \r\n in Business Wallet app 📲"
let objects2Share = [text2share]
let activityVC = UIActivityViewController(activityItems: objects2Share, applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)
}
When I tried it, it worked for all social networks apps except for whatsapp and Facebook!
*Here's the error I got when I try to share it to whatsapp:
*Here's What I got when I share to Facebook:
And the link is empty!
Is there anybody know how can I solve this?
And why this happens?
It's a bug on whatsapp.
Check this
thread. It discusses the same. It seems like a very recent bug as earlier the same methods used to work. Check this answer by santhu for possible workaround or wait since they have admitted to resolve the bug.
if you try this code, you can share just the URL which I was talking about.
let textToShare = "Check out this Business Name"
let appURL = NSURL(string: "http://www.google.com")! as NSURL
let objectsToShare = [textToShare, appURL]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
//New Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList]
self.presentViewController(activityVC, animated: true, completion: nil)
if you want to share your text via facebook add excludeActivities
let activityVC = UIActivityViewController(activityItems: objects2Share, applicationActivities: nil)
let excludeActivities = [UIActivityTypePostToFacebook, UIActivityTypePostToTwitter, UIActivityTypeMessage, UIActivityTypeMail]
activityVC.excludedActivityTypes = excludeActivities
self.presentViewController(activityVC, animated: true, completion: nil)

Resources