¿Cómo puedo vincular mi aplicación en App Store (iTunes)?

Quiero tener una función en mi aplicación donde el usuario pueda enviar un correo electrónico a un amigo con la URL de iTunes a mi aplicación. ¿Como es posible?

Gracias.

En lugar de las URL largas y confusas que normalmente ves, puedes crear enlaces de App Store mucho más simples y lógicos. La tienda de iTunes tiene un formato de URL oculto que es mucho más lógico. Dependiendo de a lo que esté enlazando, solo necesita construir una URL en uno de estos formatos:

  1. Nombre del artista o nombre del desarrollador de la tienda de aplicaciones: http://itunes.com/Artist_Or_Developer_Name
  2. Nombre del álbum: http://itunes.com/Artist_Name/Album_Name
  3. Aplicaciones: http://itunes.com/app/App_Name
  4. Películas: http://itunes.com/movie/Movie_Title
  5. TV: http://itunes.com/tv/Show_Title

Solo incluya una url de este formato en el cuerpo del correo electrónico que cree.

(Tenga en cuenta que los espacios pueden causar problemas, pero descubrí que omitirlos me funcionó por completo: http://itunes.com/app/FrootGroove redirige a la aplicación llamada “Froot Groove”).

(También tenga en cuenta que si esto no funciona para usted, el creador de enlaces de iTunes está aquí )

Su código será algo así (extraído del mío, anonimizado y no probado)

NSString* body = [NSString stringWithFormat:@"Get my app here - %@.\n",myUrl]; #if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_2_2 [NSThread sleepForTimeInterval:1.0]; NSString* crlfBody = [body stringByReplacingOccurrencesOfString:@"\n" withString:@"\r\n"]; NSString* escapedBody = [(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)crlfBody, NULL, CFSTR("?=&+"), kCFStringEncodingUTF8) autorelease]; NSString *mailtoPrefix = [@"mailto:xxx@wibble.com?subject=Get my app&body=" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // Finally, combine to create the fully escaped URL string NSString *mailtoStr = [mailtoPrefix stringByAppendingString:escapedBody]; // And let the application open the merged URL [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoStr]]; #endif 

Puedes hacer cosas mejores en iPhone 3.0, pero aún no puedo hablar de ellas.

En OS 3.0 puede usar el marco MessageUI para hacer esto sin salir de la aplicación (usando el código de Jane como respaldo para dispositivos pre-3.0):

 - (void)sendEmail { NSString* body = [NSString stringWithFormat:@"Get my app here - %@.\n",myUrl]; #if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_2_2 Class mailClass = (NSClassFromString(@"MFMailComposeViewController")); if (mailClass != nil && [mailClass canSendMail]) { MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; picker.mailComposeDelegate = self; picker.subject = @"Get my app"; [picker setToRecipients:[NSArray arrayWithObject:@"xxx@wibble.com"]; [picker setMessageBody:body isHTML:NO]; [self presentModalViewController:picker animated:NO]; [picker release]; } else { [NSThread sleepForTimeInterval:1.0]; NSString* crlfBody = [body stringByReplacingOccurrencesOfString:@"\n" withString:@"\r\n"]; NSString* escapedBody = [(NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)crlfBody, NULL, CFSTR("?=&+"), kCFStringEncodingUTF8) autorelease]; NSString *mailtoPrefix = [@"mailto:xxx@wibble.com?subject=Get my app&body=" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; // Finally, combine to create the fully escaped URL string NSString *mailtoStr = [mailtoPrefix stringByAppendingString:escapedBody]; // And let the application open the merged URL [[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailtoStr]]; } #endif } #pragma mark - #pragma mark Mail Composer Delegate - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { if (result == MFMailComposeResultFailed) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[error localizedDescription] message:[error localizedFailureReason] delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", @"OK") otherButtonTitles:nil]; [alert show]; [alert release]; } [self dismissModalViewControllerAnimated:YES]; } 

Tenga en cuenta que su clase debe adoptar el protocolo MFMailComposeViewControllerDelegate . También puede incluir archivos adjuntos, usar HTML en el cuerpo y más.

Ahora puede usar appstore.com/APP_NAME para iniciar una aplicación en iTunes. Esto funciona en el escritorio y en dispositivos iOS. Sin embargo, esto no es tan confiable como otros métodos. Consulte la respuesta aquí. ¿Cómo crear una url de vanidad para apple appStore?

Este código genera el enlace de la tienda de aplicaciones automáticamente en función del nombre de la aplicación, no se requiere nada más, arrastre y suelte :

 NSCharacterSet *trimSet = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789"] invertedSet]; NSArray *trimmedAppname = [[NSString stringWithString:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]] componentsSeparatedByCharactersInSet:trimSet]; NSString *appStoreLink = @"http://itunes.com/app/"; for (NSString *part in trimmedAppname) appStoreLink = [NSString stringWithFormat:@"%@%@",appStoreLink,part]; NSLog(@"App store URL:%@",appStoreLink); 

Te da un enlace como http://itunes.com/app/angrybirds

Por cierto, el enlace a la aplicación mediante su ID se puede encontrar visitando la tienda de aplicaciones para su aplicación y haciendo clic en “Informar a un amigo”, y luego envíe un correo electrónico a usted mismo. Encontré que esto es muy informativo.