Swift: cómo abrir una nueva aplicación cuando se toca UIButton

Tengo una aplicación y cuando se hace clic en un uibutton, quiero abrir otra aplicación que ya está instalada (es decir, Waze). ¿Cómo puedo hacer eso? Muchas gracias.

Prueba esto. Por ejemplo, quieres abrir una aplicación de Instagram:

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: "http://instagram.com/")!) } 

En SecondApp

Vaya al archivo plist de SecondApp y necesita agregar un URL Schemes con una cadena iOSDevTips (por supuesto, puede escribir otro string.it depende de usted).

enter image description here

2. En FirstApp

Crea un botón con la siguiente acción:

 - (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]; } } 

Eso es. Ahora, cuando puede hacer clic en el botón en FirstApp, debería abrir SecondApp.

Para obtener más información, consulte aquí

Puede buscar Waze Community para referencia.

Fragmento de código Objective-C:

 if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"waze://"]]) { // Waze is installed. Launch Waze and start navigation NSString *urlStr = [NSString stringWithFormat:@"waze://?ll=%f,%f&navigate=yes", latitude, longitude]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]]; } else { // Waze is not installed. Launch AppStore to install Waze app [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/us/app/id323229106"]]; } 

Fragmento de código Swift:

 if UIApplication.shared.canOpenURL(URL(string: "waze://")!) { // Waze is installed. Launch Waze and start navigation let urlStr = String(format: "waze://?ll=%f, %f&navigate=yes", latitude, longitude) UIApplication.shared.openURL(URL(string: urlStr)!) } else { // Waze is not installed. Launch AppStore to install Waze app UIApplication.shared.openURL(URL(string: "http://itunes.apple.com/us/app/id323229106")!) } 

en swift4 waze

 class FullMapVC: UIViewController { var lat:CLLocationDegrees? var long:CLLocationDegrees? func wazeMaps() { let openUrl = URL(string: "waze://?ll=\(String(describing: lat!)),\(String(describing: long!))&navigate=yes")! UIApplication.shared.open(openUrl , options:[:]) { (success) in if !success { } } } } 

reemplazar url con si quieres usar google maps

  let openUrl = URL(string: "comgooglemaps://?saddr=&daddr=\(String(describing: lat!)),\(String(describing: long!))&directionsmode=driving")!