ios - simbolos - emoticones para email
Cómo configurar un asunto de correo en UIActivityViewController? (4)
Quiero establecer el tema para compartir el correo electrónico en UIActivityViewController
y también quiero compartir en Twitter. Sé que en Twitter si queremos compartir, necesitamos comprimir el texto a 140 caracteres. Revisé muchas soluciones de SO, pero nada está funcionando.
¿Este problema está solucionado en los últimos lanzamientos de iOS? ¿Alguna otra "solución de trabajo"?
Aquí hay una solución concreta para Swift 3.0+ .
Implementación:
class messageWithSubject: NSObject, UIActivityItemSource {
let subject:String
let message:String
init(subject: String, message: String) {
self.subject = subject
self.message = message
super.init()
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return message
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivityType) -> Any? {
return message
}
func activityViewController(_ activityViewController: UIActivityViewController,
subjectForActivityType activityType: UIActivityType?) -> String {
return subject
}
}
Uso:
Aquí hay un ejemplo de uso. Tenga en cuenta que funciona bien para usar esto como el primer elemento de la matriz activityItems e incluir elementos adicionales a seguir:
let message = messageWithSubject(subject: "Here is the subject", message: "An introductory message")
let itemsToShare:[Any] = [ message, image, url, etc ]
let controller = UIActivityViewController(activityItems: itemsToShare, applicationActivities: nil)
Para Swift 2.0+ y ios 8.0+
let title = "Title of the post"
let content = "Content of the post"
let objectsToShare = [title, content]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityVC.setValue(title, forKey: "Subject")
self.presentViewController(activityVC, animated: true, completion: nil)
Parece que el envío de la solución de setValue:forKey:
al UIActivityViewController
no está documentado.
En iOS 7 y posterior, puede implementar el método activityViewController:subjectForActivityType:
en un objeto que se ajuste al protocolo UIActivityItemSource
para hacerlo de una manera que esté documentada.
Verifique el código a continuación para el correo electrónico para configurar su asunto del correo electrónico:
UIActivityViewController* avc = [[UIActivityViewController alloc] initWithActivityItems:@[@"Your String to share"]
applicationActivities:nil];
[avc setValue:@"Your email Subject" forKey:@"subject"];
avc.completionHandler = ^(NSString *activityType, BOOL completed) {
// ...
};
Aquí la línea
[avc setValue: @ "Su asunto de correo electrónico" forKey: @ "subject"];
Hace que el tema sea "Su asunto de correo electrónico" si el usuario elige la opción de correo electrónico en el UIActivityViewController.
Espero que ayude...