Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swift: How to open a new app when UIButton is tapped

I have an app and when a uibutton is clicked, I want to open another app that is already installed (i.e. Waze). How can I do such? Big thanks.

like image 577
thedansaps Avatar asked Nov 26 '15 06:11

thedansaps


2 Answers

Try this. For example you want to open an Instagram app:

let instagramHooks = "instagram://user?username=johndoe"
let instagramUrl = URL(string: instagramHooks)!
if UIApplication.shared.canOpenURL(instagramUrl)
{  
    UIApplication.shared.open(instagramUrl)
} else {
    //redirect to safari because the user doesn't have Instagram
    UIApplication.shared.open(URL(string: "http://instagram.com/")!)
}
like image 100
Orkhan Alizade Avatar answered Oct 17 '22 21:10

Orkhan Alizade


In SecondApp

Go to the plist file of SecondApp and you need to add a URL Schemes with a string iOSDevTips(of course you can write another string.it's up to you).

enter image description here

2 . In FirstApp

Create a button with the below action:

- (void)buttonPressed:(UIButton *)button
{
  NSString *customURL = @"iOSDevTips://";

  if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
  {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
  }
  else
  {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"URL error"
                              message:[NSString stringWithFormat:@"No custom URL defined for %@", customURL]
                              delegate:self cancelButtonTitle:@"Ok" 
                              otherButtonTitles:nil];
    [alert show];
  }

}

That's it. Now when you can click the button in the FirstApp it should open the SecondApp.

For more info Refer here

like image 8
PK20 Avatar answered Oct 17 '22 19:10

PK20