2013-08-08 16 views
5

Próbuję utworzyć aplikację dla systemu iOS i Android z obsługą emoji w postach. Obecnie jestem Base64 kodowania i dekodowania ciąg (tekst &/emoji) z UTF-8. Wydaje się działać natywnie, z systemem Android do systemu Android i iOS-to-iOS, ale z systemu Android -> iOS lub iOS -> Android nie zawsze działa. Zdarza się, że brakuje kilku emotikonów, a reszta łańcucha (dowolny tekst) jest tracona w tych przypadkach.Obsługa Emoji dla iOS i Androida

Uwaga: Rozumiem, że różne urządzenia mają różne emoji, więc nie martwię się od czasu do czasu brakującymi emotikonami, ale brakujący tekst nurtuje mnie i zauważyłem brakujący emoji na tym samym urządzeniu.

Czy ktoś ma jakieś pomysły lub zna jakieś lepsze rozwiązania? Dzięki!

+0

Co oznacza system iOS na Androida i odwrotnie? Przez serwer? Bluetooth? W jaki sposób? – Simon

+0

Za pośrednictwem serwera WWW * – lgdroid57

+0

Przy okazji, przykładem mojego kodowania jest: http://stackoverflow.com/questions/7360403/base-64-encode-and-dode-example-code/7360440#7360440 – lgdroid57

Odpowiedz

2

Udało mi się to rozgryźć. Nie kodujemy już ani nie dekodujemy ciągów znaków. Zamiast tego zmodyfikowałem TextView w Androidzie, aby ponownie sformatować ciąg znaków, tak aby wyświetlał się zarówno tekst, jak i emoja. Zrobiłem bardzo prostą bibliotekę na podstawie mojego rozwiązania. https://github.com/will5/EMOJITextView

+0

Czy możesz napisać więcej informacji o swojej bibliotece, o tym, co robi i jak to działa, wszystko co widzę w EmojiTextView.java to to, że stosujesz StringEscapeUtils.unescapeJava do tekstu. –

+1

Przepraszamy! StringEscapeUtils jest częścią biblioteki Java, która nie jest częścią biblioteki Android. Moja biblioteka importuje brakującą bibliotekę i poprawnie usuwa znaki specjalne. Na przykład ":-)" zostaje usunięte jako "\ ud83d \ ude03". EmojiTextView.setTextWithEmojis konwertuje "\ ud83d \ ude03" na ":-)". – lgdroid57

+1

Właśnie zsynchronizowałem nową wersję, która ma klasę pomocniczą do kodowania i dekodowania emotikonów, jak wspomniałem – lgdroid57

Powiązane problemy