[Projet] Déclencher une Copie d'écran pour envoi par mail

Je souhaite dans une application en cours de développement transmettre par email une copie d'écran de ma "FisrtView Controler".



J'ai déjà  créer la fonction mail, pas de probleme



mais je ne sais pas déclencher la copie en xcode puis la récupérer pour la transmettre



Merci d'avance pour votre aide



MB

Réponses

  • Salut Macbidule,



    Magnifique source trouvé sur le site d'apple : http://developer.apple.com/library/ios/#qa/qa1703/_index.html#//apple_ref/doc/uid/DTS40010193



    Je l'utilise dans mon appli sans problème.

    Testé sur iPhone et iPad (attention la capture est un peu longue sur ce dernier genre 0,5 s, la résolution de l'écran retina explique cela), j'ai utilisé cette fonction pour faire du "modal" (une fenêtre inhibant les autres autres view mais n'occupant pas tout l'écran, je sauvegarde une copie de l'écran avant d'afficher la view "modale", mets l'image en dessous et le tour est joué...)



    Olivier
  • -([color=#b933a1]IBAction[/color])email {<br />
    <br />
    [color=#7041a7][color=#000000]	[/color]MFMailComposeViewController[color=#000000] *composer = [[[/color]MFMailComposeViewController[color=#000000] [/color][color=#3d227f]alloc[/color][color=#000000]] [/color][color=#3d227f]init[/color][color=#000000]];[/color][/color]<br />
    [color=#3d227f][color=#000000]	[composer [/color]setMailComposeDelegate[color=#000000]:[/color][color=#b933a1]self[/color][color=#000000]];[/color][/color]<br />
    [color=#7041a7][color=#000000]	[/color][color=#b933a1]if[/color][color=#000000] ([[/color]MFMailComposeViewController[color=#000000] [/color][color=#3d227f]canSendMail[/color][color=#000000]]) {[/color][/color]<br />
    [color=#3d227f][color=#000000]		[composer [/color]setToRecipients[color=#000000]:[[/color][color=#7041a7]NSArray[/color][color=#000000] [/color]arrayWithObjects[color=#000000]:[/color][color=#cf3125]@&quot;monSite@free.fr&quot;[/color][color=#000000], [/color][color=#b933a1]nil[/color][color=#000000]]];[/color][/color]<br />
    [color=#cf3125][color=#000000]		[composer [/color][color=#3d227f]setSubject[/color][color=#000000]:[/color]@&quot;Envoi d&#39;une copie d&#39;écran&quot;[color=#000000]];[/color][/color]<br />
    <br />
    <br />
    [color=#008212][color=#000000]		[/color]//Copie ecran[/color]<br />
    		[color=#7041a7]CGImageRef[/color] ecran = [color=#33595d]UIGetScreenImage[/color]();<br />
    		[color=#7041a7]UIImage[/color]* image = [[color=#7041a7]UIImage[/color] [color=#3d227f]imageWithCGImage[/color]:ecran];<br />
    		[color=#3d227f]CGImageRelease[/color](ecran);		<br />
    		[color=#7041a7]NSData[/color] *imageData = [color=#3d227f]UIImageJPEGRepresentation[/color](image, [color=#2934d5]1[/color]);<br />
    		[composer [color=#3d227f]addAttachmentData[/color]:imageData [color=#3d227f]mimeType[/color]:[color=#cf3125]@&quot;image/jpg&quot;[/color] [color=#3d227f]fileName[/color]:[color=#cf3125]@&quot;copieecran.jpg&quot;[/color]];<br />
    [color=#000000]	  [/color]// ---- Fin copie ecran<br />
    <br />
    	<br />
    [color=#cf3125][color=#000000]		[/color][color=#7041a7]NSString[/color][color=#000000] * texteIntro = [[[/color][color=#7041a7]NSMutableString[/color][color=#000000] [/color][color=#3d227f]alloc[/color][color=#000000]]  [/color][color=#3d227f]initWithFormat[/color][color=#000000]:[/color]@&quot;&lt;br&gt;texte courant  &quot;[color=#000000] ];	  [/color][/color]<br />
    		[color=#7041a7]NSString[/color] *message = [[color=#508186]textviewLog[/color].[color=#7041a7]text[/color]  [color=#3d227f]stringByAppendingFormat[/color]:[color=#cf3125]@&quot;%@&quot;[/color],texteIntro];<br />
    		[composer [color=#3d227f]setMessageBody[/color]:message [color=#3d227f]isHTML[/color]:[color=#b933a1]YES[/color]];[color=#008212]//[/color]<br />
    <br />
    <br />
    [color=#3d227f][color=#000000]		[composer [/color]setModalTransitionStyle[color=#000000]:[/color]UIModalTransitionStyleCrossDissolve[color=#000000]];[/color][/color]<br />
    [color=#3d227f][color=#000000]		[[/color][color=#b933a1]self[/color][color=#000000] [/color]presentModalViewController[color=#000000]:composer [/color]animated[color=#000000]:[/color][color=#b933a1]YES[/color][color=#000000]];[/color][/color]<br />
    	}<br />
    <br />
    }
    




    Voilà  aussi une méthode qui fonctionne. l'avantage que j'y vois est que le code s'insert facilement dans le corps de l'email et dans les lignes de code d'envoi par email

    (Merci à  Omar meBarki pour son aide)

    et

    Merci à  Toi aussi 4le4fclover, je vais essayé ta méthode pour voir qu'elle la plus opportune
Connectez-vous ou Inscrivez-vous pour répondre.