ios - pasar - transferir datos de android a iphone
¿Cómo puedo lanzar la aplicación para iPhone de Google Maps desde mi propia aplicación nativa? (15)
Si está utilizando ios 10, no olvide agregar Esquemas de consulta en Info.plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>comgooglemaps</string>
</array>
Si está utilizando objetivo-c
if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps:"]]) {
NSString *urlString = [NSString stringWithFormat:@"comgooglemaps://?ll=%@,%@",destinationLatitude,destinationLongitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
} else {
NSString *string = [NSString stringWithFormat:@"http://maps.google.com/maps?ll=%@,%@",destinationLatitude,destinationLongitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:string]];
}
Si está usando swift 2.2
if UIApplication.sharedApplication().canOpenURL(NSURL(string: "comgooglemaps:")!) {
var urlString = "comgooglemaps://?ll=/(destinationLatitude),/(destinationLongitude)"
UIApplication.sharedApplication().openURL(NSURL(string: urlString)!)
}
else {
var string = "http://maps.google.com/maps?ll=/(destinationLatitude),/(destinationLongitude)"
UIApplication.sharedApplication().openURL(NSURL(string: string)!)
}
Si está usando swift 3.0
if UIApplication.shared.canOpenURL(URL(string: "comgooglemaps:")!) {
var urlString = "comgooglemaps://?ll=/(destinationLatitude),/(destinationLongitude)"
UIApplication.shared.openURL(URL(string: urlString)!)
}
else {
var string = "http://maps.google.com/maps?ll=/(destinationLatitude),/(destinationLongitude)"
UIApplication.shared.openURL(URL(string: string)!)
}
La documentación del desarrollador de Apple (el enlace está muerto ahora) explica que si coloca un enlace en una página web y luego hace clic mientras usa Safari móvil en el iPhone, se iniciará la aplicación Google Maps que se proporciona de serie con el iPhone.
¿Cómo puedo lanzar la misma aplicación de Google Maps con una dirección específica desde mi propia aplicación de iPhone nativa (es decir, no una página web a través de Mobile Safari) de la misma manera que al tocar una dirección en Contactos se inicia el mapa?
NOTA: ESTO SÓLO FUNCIONA EN EL DISPOSITIVO EN SÍ MISMO. NO EN EL SIMULADOR.
Ahora también está la aplicación App Store Google Maps, documentada en https://developers.google.com/maps/documentation/ios/urlscheme
Primero verifica que esté instalado:
[[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://"]];
Y luego puede reemplazar http://maps.google.com/maps?q=
condicional con comgooglemaps://?q=
.
Aquí está la referencia de esquema de URL de Apple para enlaces de mapa: http://developer.apple.com/iphone/library/featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html
Las reglas para crear un enlace de mapa válido son las siguientes:
- El dominio debe ser google.com y el subdominio debe ser maps o ditu.
- La ruta debe ser /, / maps, / local, o / m si la consulta contiene el sitio como clave y local como el valor.
- La ruta no puede ser / maps / *.
- Todos los parámetros deben ser compatibles. Consulte la Tabla 1 para ver la lista de parámetros compatibles **.
- Un parámetro no puede ser q = * si el valor es una URL (por lo tanto, KML no se recoge).
- Los parámetros no pueden incluir view = text o dirflg = r.
** Consulte el enlace de arriba para ver la lista de parámetros admitidos.
Exactamente. El código que necesita para lograr esto es algo así:
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]];
dado que según la documentación , la aplicación UIA solo está disponible en el delegado de la aplicación a menos que llame a sharedApplication.
Para abrir Google Maps en coordenadas específicas, pruebe este código:
NSString *latlong = @"-56.568545,1.256281";
NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?ll=%@",
[latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
Puede reemplazar la cadena latlong con la ubicación actual de CoreLocation.
También puede especificar el nivel de zoom, utilizando el indicador ("z"). Los valores son 1-19. Aquí hay un ejemplo:
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ " http://maps.google.com/maps?z=8 "]];
Para la pregunta telefónica, ¿estás probando en el simulador? Esto solo funciona en el dispositivo mismo.
Además, openURL devuelve un bool, que puede usar para verificar si el dispositivo en el que se ejecuta admite la funcionalidad. Por ejemplo, no puedes hacer llamadas en un iPod Touch :-)
Para moverte al mapa de Google usa esta API y envía la latitud y la longitud del destino
NSString* addr = nil;
addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", destinationLat,destinationLong];
NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
Si necesita más flexibilidad de la que le da el formato de URL de Google o si desea insertar un mapa en su aplicación en lugar de iniciar la aplicación de mapa https://sourceforge.net/projects/quickconnect .
Incluso le proporcionará el código fuente para hacer toda la incrustación.
Si necesita más flexibilidad que la que le proporciona el formato de URL de Google o si desea insertar un mapa en su aplicación en lugar de iniciar la aplicación de mapa, encontrará un ejemplo en https://sourceforge.net/projects/quickconnect .
Si sigues teniendo problemas, este video muestra cómo mostrar "Mis mapas" de Google para que aparezcan en el iPhone; a continuación, puedes tomar el enlace y enviarlo a cualquier persona, y funciona.
Simplemente llame a este método y agregue el Esquema de URL de Google Maps en su archivo .plist igual que esta Answer .
Swift-4: -
func openMapApp(latitude:String, longitude:String, address:String) {
var myAddress:String = address
//For Apple Maps
let testURL2 = URL.init(string: "http://maps.apple.com/")
//For Google Maps
let testURL = URL.init(string: "comgooglemaps-x-callback://")
//For Google Maps
if UIApplication.shared.canOpenURL(testURL!) {
var direction:String = ""
myAddress = myAddress.replacingOccurrences(of: " ", with: "+")
direction = String(format: "comgooglemaps-x-callback://?daddr=%@,%@&x-success=sourceapp://?resume=true&x-source=AirApp", latitude, longitude)
let directionsURL = URL.init(string: direction)
if #available(iOS 10, *) {
UIApplication.shared.open(directionsURL!)
} else {
UIApplication.shared.openURL(directionsURL!)
}
}
//For Apple Maps
else if UIApplication.shared.canOpenURL(testURL2!) {
var direction:String = ""
myAddress = myAddress.replacingOccurrences(of: " ", with: "+")
var CurrentLocationLatitude:String = ""
var CurrentLocationLongitude:String = ""
if let latitude = USERDEFAULT.value(forKey: "CurrentLocationLatitude") as? Double {
CurrentLocationLatitude = "/(latitude)"
//print(myLatitude)
}
if let longitude = USERDEFAULT.value(forKey: "CurrentLocationLongitude") as? Double {
CurrentLocationLongitude = "/(longitude)"
//print(myLongitude)
}
direction = String(format: "http://maps.apple.com/?saddr=%@,%@&daddr=%@,%@", CurrentLocationLatitude, CurrentLocationLongitude, latitude, longitude)
let directionsURL = URL.init(string: direction)
if #available(iOS 10, *) {
UIApplication.shared.open(directionsURL!)
} else {
UIApplication.shared.openURL(directionsURL!)
}
}
//For SAFARI Browser
else {
var direction:String = ""
direction = String(format: "http://maps.google.com/maps?q=%@,%@", latitude, longitude)
direction = direction.replacingOccurrences(of: " ", with: "+")
let directionsURL = URL.init(string: direction)
if #available(iOS 10, *) {
UIApplication.shared.open(directionsURL!)
} else {
UIApplication.shared.openURL(directionsURL!)
}
}
}
Espero, esto es lo que estás buscando. Cualquier preocupación vuelve a mí. :)
iPhone4 iOS 6.0.1 (10A523)
Para Safari y Chrome. Ambas versiones hasta ahora (2013-junio-10).
El siguiente esquema de URL también funciona. Pero en el caso de Chrome solo funciona dentro de la página no funciona desde la barra de direcciones.
mapas: q = GivenTitle @ latitude, longtitude
"g" cambia a "q"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]]
Para iOS 5.1.1 y versiones anteriores, use el método UIApplication
de UIApplication
. Realizará la reinterpretación de URL mágica de iPhone normal. asi que
[someUIApplication openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=London"]]
debe invocar la aplicación Google maps.
Desde iOS 6, invocarás la aplicación de Maps propia de Apple. Para esto, configure un objeto MKMapItem
con la ubicación que desea visualizar, y luego envíele el mensaje openInMapsWithLaunchOptions
. Para comenzar en la ubicación actual, intente:
[[MKMapItem mapItemForCurrentLocation] openInMapsWithLaunchOptions:nil];
Para esto, deberá estar vinculado con MapKit (y creo que le pedirá acceso a la ubicación, creo).
**Getting Directions between 2 locations**
NSString *googleMapUrlString = [NSString stringWithFormat:@"http://maps.google.com/?saddr=%@,%@&daddr=%@,%@", @"30.7046", @"76.7179", @"30.4414", @"76.1617"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:googleMapUrlString]];