es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Compartir varias imágenes Y texto usando activityController no está funcionando.

Estoy creando una aplicación de ventas para enviar gráficos como imágenes con texto por correo electrónico para mi empresa, pero tengo un problema con mi aplicación.

Por alguna razón, no puedo enviar múltiples imágenes y texto juntos. Cuando se activa el código a continuación, solo se envía el texto.

He verificado triplemente y las imágenes NO son nulas y puedo compartir solo imágenes múltiples o solo texto, así como texto y una sola imagen sin problemas.

Además, solo estoy enviando dos imágenes y esto es solo para la versión del teléfono.

func EmailMultipleImages(imageArray: [UIImage], emailSubject: String, emailBodyText: String) {

    print("Array de imágenes \(imageArray.count)")
    do {
        let shareContent: [Any] = [imageArray, emailBodyText]

        // Solo imágenes múltiples
        // let shareContent: [Any] = [imageArray]

        // Solo texto
        // let shareContent: [Any] = [emailBodyText]

        // Una imagen y texto
        // let shareContent: [Any] = [imageArray[0], emailBodyText]

        let activityController = UIActivityViewController(activityItems: shareContent, applicationActivities: nil)

        activityController.setValue(emailSubject, forKey: "Subject")
        viewController!.present(activityController, animated: true, completion: nil)
    }
    catch {
        print("Error al imprimir imágenes múltiples \(error)")
    }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para enviar varias imágenes y texto juntos en la aplicación, puedes intentar cambiar la matriz shareContent para contener elementos individuales en lugar de toda la imageArray.

    Aquí tienes un ejemplo de código:

    func EmailMultipleImages(imageArray: [UIImage], emailSubject: String, emailBodyText : String) {
    
        print("Matriz de imágenes \(imageArray.count)")
    
        var shareContent: [Any] = []
    
        for image in imageArray {
            shareContent.append(image)
        }
    
        shareContent.append(emailBodyText)
    
        do {
            let activityController = UIActivityViewController(activityItems: shareContent, applicationActivities: nil)
    
            activityController.setValue(emailSubject, forKey: "Subject")
            viewController?.present(activityController, animated: true, completion: nil)
        }
        catch {
            print("Error al imprimir varias imágenes \(error)")
        }
    }
    

    Esto recorrerá la imageArray y agregará cada imagen individualmente a la matriz shareContent, y luego agregará el emailBodyText al final. Esto debería permitirte enviar varias imágenes y texto juntos a través de la aplicación.

Comments are closed.