ios objective-c xcode6 gmail uiactivityviewcontroller

ios - UIActivityViewController Gmail Compartir el asunto y el cuerpo en marcha Igual



objective-c xcode6 (1)

Estoy compartiendo algunos contenidos a través de UIActivityController .

Está funcionando bien para otras opciones.

Puedo obtener el subject y el body en la aplicación de correo predeterminada.

Pero cuando uso para compartir el contenido con gmail , mi Subject del correo desaparece y estoy obteniendo el contenido del Body en Subject''s sección Subject''s Gmail:

Aquí está mi código:

NSString *body = @"I am Body"; NSString *tagLine = @"I am Subject"; NSArray *objectToShare = [NSArray arrayWithObjects:body, nil]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectToShare applicationActivities:nil]; [activityVC setValue:tagLine forKey:@"subject"]; NSArray *excludeActivities = @[UIActivityTypeAirDrop, UIActivityTypePrint, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo]; activityVC.excludedActivityTypes = excludeActivities; [self presentViewController:activityVC animated:YES completion:nil];

Para una mejor imagen aquí está la captura de pantalla:

Con la aplicación predeterminada:

Con Gmail:

También probé diferentes respuestas en SO. Pero ninguno de ellos funciona.


En el momento de escribir esto, Google no permite la idea de configurar el asunto del correo electrónico en este momento. La gente ha reportado errores varias veces y parece que esta característica aún no es compatible.

Al mirar otros productos de propiedad de Google e intentar compartir algunos contenidos a través de Gmail, mostrará que la actividad compartida de Gmail no tiene el tema (por ejemplo, Google Chrome) o es el mismo que el cuerpo del correo electrónico (Google Translator), mientras que si los comparte. La aplicación normal parece que algunos de ellos tienen tema. Así que incluso los productos de google tienen el mismo comportamiento.

Si usa un punto de interrupción dentro de la función subjectForActivityType , se dará cuenta de que la actividad de Gmail no llegará al punto de interrupción, mientras que el correo predeterminado y otras actividades intentarán leer el tema.

@implementation EmailItemProvider - (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { return _body; } - (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { return _body; } - (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType { return _subject; }