Kein Backspace in Webview wenn Unicode-Character == multibyte

P

PhpAss

Neues Mitglied
0
Tagchen !

Frage zu folgender Umgebung:
Ich verwende eine WebView mit der ich ganz normal eine <textarea> darstelle. Möchte ich normalen, alphanumerischen Text in diese Textarea schreiben und mit Backspace (delete) wieder entfernen, funktioniert dies wunderbar.

Nun zu meinem Problem:
Mittels einer kleinen JS-Function besteht die Möglichkeit, an der aktuellen Cursor-Position ein "Smiley/Emoji" einzufügen. Hierbei wird mit einem Klick auf das Smiley-Symbol autom. der passende Emoji-Unicode an der aktuellen Cursor-Position eingefügt. Was ebenfalls ohne Probleme funktioniert. (mit der UTF-8-Textkodierung gibt es keine Probleme - jegliche Sonderzeichen werden auch korrekt angezeigt)

Möchte ich jedoch unter Android 4.4.4 einen zuvor eingefügten Smiley mit der Backspace-Taste entfernen, bleibt der Cursor einfach an der aktuellen Position hängen, ohne das letzte Zeichen (UniCode) zu entfernen. Man kann sozusagen den zuvor geschriebenen Text ab dem zuletzt eingefügten Smiley nicht mehr entfernen.

Meine Ansätze zur Problembeseitigung: (mittels JS)
Mittels einer JS-Function (keypress,keyup,keydown / event.keyCode [textarea]) hatte ich darum versucht die von der Tastatur eingegebenen Daten "abzufangen" um mir den aktuellen KeyCode ausgeben zu lassen und darauf reagieren zu können. (keyCode 8 - wäre hier meine Lösung - um das zuvorstehende Zeichen als Unicode mittels charCodeAt() zu identifizieren um danach 2-4 Bytes ab der aktuellen Cursor-Position zu entfernen) Unter Android 4.2.2 und abwärts funktioniert dieser Spass problemlos. Android 4.4.4 macht hierbei jedoch Stress und verweigert mir die Ausgabe der KeyCodes bei keypress,keyup,keydown ... Maximal keyCode 13 für Enter sowie die Zahlen von 0-9 (48-57) kann man abfangen. Alles andere wird mir ständig mit keyCode 0 ausgegeben.

Hat jemand eventuell ähnliche Erfahrungen gemacht und dazu vielleicht 'ne halbwegs brauchbare Lösung gefunden ?

Gruss
 
Zuletzt bearbeitet:
Hallo PhpAss, viele Worte, aber die wichtigsten Infos fehlen.

Benutzt du ein Framework wie Phonegapp oder Titanium? Oder führst du JavaScript-Code in einem Webview einer Java App?

Ohne Code und Fehlermeldung ist es schwer dein Problem nachzuvollziehen. Ich könnte mir jetzt eine "kleine JS-Function" vorstellen. Aber die unterscheidet sich bestimmt von deiner. ;)
 

Ähnliche Themen

K
Antworten
3
Aufrufe
1.168
Kapikalaani
K
D
Antworten
23
Aufrufe
2.555
Data2006
D
Zurück
Oben Unten