¡Cómo implementar un hipervínculo URL para abrir la APLICACIÓN IOS!
Registrar un protocolo URL personalizado
Primero, la aplicación iniciada necesita registrar un protocolo URL personalizado con el iPhone. El registro se realiza en el archivo info.plist en la carpeta del proyecto (el mismo archivo que cambia el ícono de la aplicación).
Paso 1. Haga clic derecho y seleccione "Agregar fila". Paso 2. Seleccione "Tipo de URL" para el valor de clave.
Paso 3. Abra el "Elemento 0" y agregue la clave. . Puede ser cualquier valor, pero se recomienda utilizar un "nombre de dominio inverso" (por ejemplo, "com.fcplayer.testHello").
Paso 4. Agregue otra fila en "Proyecto 0".
Paso cinco. Seleccione "Esquemas de URL" como clave. Ingrese el nombre del protocolo URL (por ejemplo, "testHello://" debe escribirse como "testHello"). Puede incluir varios protocolos aquí si es necesario.
Una captura de pantalla de la operación es la siguiente:
Acceder a una URL personalizada
Inicie otra aplicación dentro de la aplicación principal accediendo a una URL personalizada:
[csharp] ver copia simple
NSURL * myURL_APP_A = [NSURL URLWithString:@"testHello://"];
if ([[UIApplication shareApplication] canOpenURL: myURL_APP_A ]) {
NSLog(@"canOpenURL");
[[UIApplication shareApplication] openURL: myURL_APP_A];
}
Manejo de URLs personalizadas
A veces, además de iniciar, también necesitamos enviar parámetros a otra aplicación, lo que se puede lograr a través de URLs personalizadas. Por ejemplo:
testHello://
testHello://com.fcplayer.
testHello://config=1amp;abar=2
En este momento debemos implementar el mensaje implementando el mensaje en el delegado (Cocos2d se agrega a AppDelegate), por ejemplo, personalizar el método de procesamiento en la aplicación iniciada:
- (BOOL) aplicación: (UIApplication *)applicationhandleOpenURL: (NSURL*)url { // Haga algo con la URL aquí }
Normalmente, analizamos la URL a partir de los parámetros para mostrarla en la vista o almacenarla en el Preferencia de usuario.
El siguiente ejemplo almacena o imprime la URL en las preferencias del usuario como una variable de URL:
[csharp] ver copia simple
-(BOOL)aplicación: (UIApplication *)aplicación handleOpenURL: (NSURL *)url
{
if (!url) { return NO }
NSString *URLString = [url absolutString];
NSLog(@ "@", URLString);
//[[NSUserDefaults standardUserDefaults] setObject.URLString forKey: @"url"];
//[[NSUserDefaults standardUserDefaults] sincronizar];
regresar SÍ;
}
Otro
¡Eso es básicamente todo! Hemos implementado la funcionalidad de iniciar otra aplicación dentro de una aplicación, pero para hacer nuestro código más sólido, encontré otro código de acceso en línea, como se muestra a continuación:
[csharp] ver copia simple
// Compruebe si el usuario ha configurado AppId
// El campo CFBundleURLSchemes de Información no está configurado con precisión
// Si se puede abrir correctamente
// p>
if (!kAppId) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle: @"Error de configuración"
mensaje: @"Falta el ID de la aplicación. No puede ejecutar la aplicación hasta que proporcione este ID en el código."
delegate: self
cancelButtonTitle: @"OK"
otherButtonTitles: nulo,
nil];
[alertView show]
[lanzamiento de alertaView]
} else {
// Ahora verifique si el esquema de URL fb[app_id]://authorize está en .plist y puede
El esquema de URL en .plist. plist y se puede abrir
//, aquí se realiza una verificación simple, independientemente del ID de la aplicación local
NSString *url = [NSString stringWithFormat:@"fb@:// Authorize",kAppId];
BOOL bSchemeInPlist = NO; // Descubra si la escena está en el archivo plist.
NSArray* aBundleURLTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"]
if (([ aBundleURLTypes isKindOfClass:[Clase NSArray]] amp; amp;
([aBundleURLTypes count] gt; 0)) {
NSDictionary* aBundleURLTypes0 = [ aBundleURLTypes objectAtIndex: 0];
if ([aBundleURLTypes0 isKindOfClass: [clase NSDictionary] ]) {
NSArray* aBundleURLSchemes = [ aBundleURLTypes0 objectForKey: @"CFBundleURLSchemes"];
if ([aBundleURLSchemes isKindOfClass: [NSString *scheme = [aBundleURLSchemes objectAtIndex: 0];
if ([esquema isKindOfClass: [clase NSString]] amp; amp;
[url hasPrefix: esquema]) {
bSchemeInPlist = YES
}
}
}
}
}
}
}
/ Compruebe si la devolución de llamada de autorización es válida
BOOL bCanOpenUrl = [[UIApplication shareApplication] canOpenURL: [NSURL URLWithString: url]];
if ( ! bSchemeInPlist || !bCanOpenUrl) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle: @"Error de configuración"
mensaje: @ "Esquema de URL no válido o faltante. No puede ejecutar la aplicación hasta que se establezca un esquema de URL válido en su .plist.
"
delegado: self
cancelButtonTitle: @"OK"
otherButtonTitles: nil,
nil];
[alertView show];
[lanzamiento de alertaView];
}
}
Otro fragmento de código usos Para iniciar otras aplicaciones:
[csharp] ver copia simple
-(IBAction)openMaps {//Abrir el mapa
//¿Dónde está Apple en el map
NSString* direcciónText = @"1 Infinite Loop, Cupertino, CA 95014"
// La URL codifica espacios
addressText = [addressText stringByAddingPercentEscapesUsingEncoding : NSASCIIStringEncoding];
NSString* urlText = [NSString stringWithFormat:@"/maps?q=@",addressText];
//Agreguemos este texto al registro para ver el URL si ocurre un problema
NSLog(urlText);
[[UIApplication shareApplication] openURL:[NSURL URLWithString:urlText]];
}
-(IBAction)openEmail {//Abrir correo electrónico
//Enviar correo electrónico al soporte técnico de Apple
[[UIApplication shareApplication] openURL: [NSURL URLWithString :@"mailto: //devprograms@apple.com"]];
}
-(IBAction)openPhone {//Hacer una llamada
//Llamar a Google 411
[[UIApplication shareApplication] openURL: [NSURL URLWithString:@" tel://8004664411"]];
}
-(IBAction)openSms {/ / Abrir SMS
// Texto a Google SMS
[[UIApplication shareApplication] openURL: [NSURL URLWithString:@"sms://466453"]];
}
-(IBAction)openBrowser {// Abrir navegador
/ Lanza cualquier sitio favorito de desarrolladores de iPhone
[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@" "]];
}