7
votes

iOS: Comment copier HTML dans la tampon Cut-Coller?

Je suis intéressé à laisser mes utilisateurs copier le texte qu'ils ont entré dans le tampon coupé et pâte, mais j'aimerais faire cela comme HTML.

est une telle chose encore possible? Ou dois-je utiliser un format MIME? (Je n'ai aucune idée.)

Merci.


0 commentaires

4 Réponses :


7
votes

Le code suivant obtiendra votre HTML hors de votre application et dans l'application Mail d'Apple. La documentation ne vous donne pas beaucoup d'aide à ce sujet, donc en partie, il s'agit d'examiner les applications d'Apple sur la pâte et ensuite ingénierie inverse. Cette solution s'appuie sur un Stackoverflow Post - Suivi des liens là-bas pour plus d'arrière-plan.

NSLog(@"Place HTML on the pasteboard");

UIPasteboard* pasteboard = [UIPasteboard generalPasteboard];
NSString *htmlType = @"Apple Web Archive pasteboard type";

// example html string
NSString* htmlString = @"<p style=\"color:gray\"> <a href=@\"http://itunes.apple.com/gb/app/paragraft/id412998778?mt=8\">Paragraft</a><br><em>Less than a word processor, more than plain text</em>";

NSMutableDictionary *resourceDictionary = [NSMutableDictionary dictionary];    

[resourceDictionary setObject:[htmlString dataUsingEncoding:NSUTF8StringEncoding]  forKey:@"WebResourceData"];

[resourceDictionary setObject:@"" forKey:@"WebResourceFrameName"];
[resourceDictionary setObject:@"text/html" forKey:@"WebResourceMIMEType"];
[resourceDictionary setObject:@"UTF-8" forKey:@"WebResourceTextEncodingName"];
[resourceDictionary setObject:@"about:blank" forKey:@"WebResourceURL"];

NSDictionary *containerDictionary = [NSDictionary dictionaryWithObjectsAndKeys:resourceDictionary, @"WebMainResource", nil];

NSDictionary *htmlItem = [NSDictionary dictionaryWithObjectsAndKeys:containerDictionary,htmlType,nil];

[pasteboard setItems: [NSArray arrayWithObjects: htmlItem, nil]];

// This approach draws on the blog post and comments at:
// http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/


1 commentaires

Merci, je vais essayer ça.



0
votes

J'adore absolument cette méthode de création de contenus basés sur HTML que vous pouvez coller dans d'autres applications au centre HTML, comme le courrier. Cependant, j'ai remarqué que la solution ci-dessus par Matthew Elton ne permettait que la pâte de pâte à coller sur des applications au centre de HTML. Essayer de coller le même contenu dans l'application Notes par exemple, échouerait.

J'ai pris les conseils de ce message: https://stackoverflow.com/a/1078471/351810 et peut Maintenant collez avec succès des versions de texte HTML et de texte brut du contenu que je veux.


1 commentaires

Cela fonctionnait parfaitement sur iOS 4, mais lorsque je l'ai essayé sur iOS 5, le HTML semble un peu cassé. Je peux coller avec succès \ \ liens, mais le formatage comme l'audacieux et la couleur semble être ignoré.



4
votes

7 commentaires

Dans une certaine mesure, son travail, mais cela me donne le résultat souhaité. Tinypique .Com / View.php? Pic = 2YW8TQQ & S = 8 # .UVK-RPYKGNU Je ne sais pas pourquoi il n'a pas éliminé l'étiquette HTML.?


Voici mon code Pastebin.com/rg4qwuek toute suggestion sera achetée.Merci


Lorsque vous passez dans le débogueur, plaine a-t-il la représentation de texte correcte à la fin de la méthode?


quand je nslog (@ "texte simple% @", plaine); Il me montre le même résultat

Word اب تک

Signification Heretofore / jusqu'à présent La même chose fonctionne bien lorsque j'envoie envoyé par courrier.


Ensuite, la regex pour dépouiller les balises HTML ne fonctionne pas. Peut-être qu'un problème de codage lors de la copie du code? Pour valider, définissez uni sur du texte brut. Il devrait être collé dans des champs plaints tels que un uisearchbar .


@Ortwingentz - Votre solution fonctionne toujours bien. Je viens de mettre à jour une ligne qui utilisait "DatafromPropertylist" à Data = [NSPropertylistserialization DatawithPropertylist: Format de dict: NSPropertylistXMLFormat_v1_0 Options: 0 Erreur: nil]; Parce qu'en 2018, cette fonction a été obsolète.


Merci, @mayankkumar, corrigé.



-1
votes

J'utilise W3schools. J'ai coupé et coller mon code HTML sur son code d'exemple, sur l'un de leurs nombreux tutoriels "Essayez-vous", puis utilisez leur bouton "Exécution".

E.g. https://www.w3schools.com/html/default.asp


1 commentaires

Whoops, j'utilise "Afficher la source de page" de n'importe quel navigateur pour obtenir le HTML. Mais cela utilise Windows. J'espère que cela aide quelqu'un d'autre.