How to open fb and instagram app by tapping on button in Swift How to open fb and instagram app by tapping on button in Swift ios ios

How to open fb and instagram app by tapping on button in Swift

Update for Swift 4 and iOS 10+

OK, there are two easy steps to achieve this in Swift 3:

First, you have to modify Info.plist to list instagram and facebook with LSApplicationQueriesSchemes. Simply open Info.plist as a Source Code, and paste this:

<key>LSApplicationQueriesSchemes</key><array>    <string>instagram</string>    <string>fb</string></array>

After that, you can open instagram and facebook apps by using instagram:// and fb://. Here is a complete code for instagram and you can do the same for facebook, you can link this code to any button you have as an Action:

@IBAction func InstagramAction() {    let Username =  "instagram" // Your Instagram Username here    let appURL = URL(string: "instagram://user?username=\(Username)")!    let application = UIApplication.shared    if application.canOpenURL(appURL) {    } else {        // if Instagram app is not installed, open URL inside Safari        let webURL = URL(string: "\(Username)")!    }}

For facebook, you can use this code:

let appURL = URL(string: "fb://profile/\(Username)")!

Take a look at these links, it can help you:

Open a facebook link by native Facebook app on iOS

Otherwise, there is a quick example with Instagram for opening a specific profile (nickname: johndoe) here:

var instagramHooks = "instagram://user?username=johndoe"var instagramUrl = NSURL(string: instagramHooks)if UIApplication.sharedApplication().canOpenURL(instagramUrl!) {    UIApplication.sharedApplication().openURL(instagramUrl!)} else {  //redirect to safari because the user doesn't have Instagram  UIApplication.sharedApplication().openURL(NSURL(string: "")!)}

You actually don't need to use a web and app URL anymore. The web URL will automatically open in the app if the user has it. Instagram or other apps implement this on their end as a Universal Link

Swift 4

func openInstagram(instagramHandle: String) {    guard let url = URL(string: "\(instagramHandle)")  else { return }    if UIApplication.shared.canOpenURL(url) {        if #available(iOS 10.0, *) {  , options: [:], completionHandler: nil)        } else {            UIApplication.shared.openURL(url)        }    }}