Xamarin Forms: Verwendung eines Hardware-Keyboards / KeyEvents

  • Xamarin.Forms

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

    Xamarin Forms: Verwendung eines Hardware-Keyboards / KeyEvents

    Ich suche mir schon seit Tagen einen Wolf und finde einfach keine Lösung für die für mich simple Anforderung:

    ich möchte gerne ein echtes Keyboard und/oder einen Barcode-Scanner verwenden, um einen Text in ein Entry zu erfassen, aber es gibt folgende Schwierigkeiten:
    1. es ist mir nicht möglich, das Soft-Keyboard beim Fokuserhalt zu unterdrücken. Es gibt so viele Möglichkeiten ein unterschiedliches Keyboard anzugeben, aber keines, es gar nicht anzuzeigen. Wie ist das möglich in der nun 4. Generation von Xamarin Forms !?
    2. es gibt keinerlei Key-Events. Unter Windows-Mobile konnte ich leicht die als Tastatureingaben weitergeleiteten Barcodes auffangen und verarbeiten. In Xamarin ist das nicht vorgesehen, obwohl doch unter Android die Verwendung von Scannern oder Keyboards ein realistisches Szenario sein müsste, vor allem weltweit...

    Eigentlich habe ich wenig Hoffnung, hier eine Antwort zu bekommen, da sie global anscheinend auch noch nicht gefunden wurde, aber wer weiß...
    Wenn es dir darum geht generell die KeyEvents (KeyDown, KeyUp, evtl. KeyLongPress) zu erhalten, dann kannst du unter Android und UWP jeweils die Funktionen OnKeyDown bzw. OnKeyUp in der MainActivity bzw. der MainApplication überschreiben, und dann Entweder per Nachgelagertem Event in der zentralen App Klasse, oder aber per MessagingCenter Verteilen.
    Dann musst du zwar immer Festhalten welches Control gerade den Focus hat, doch eventuell genügt dafür z.B. auch schon einfach ein CustomEntry, dass von Entry erbt, und per CustomRenderer sich beim Event aboniert/deaboniert wenn es Fokus hat, oder verliert.

    Unter iOS konnte ich auf meiner bisherigen Suche noch nichts genaues finden, doch ich schätze, wenn man hier etwas tiefer gräbt, findet man auch eine Methode diese Events abzugreifen.

    Was das unterdrücken von Keyboards angeht, habe ich das hier gefunden:
    github.com/UweReisewitz/XamarinAndroidEntry

    Von hier aus findest du bestimmt auch Wege dies auf den anderen beiden Plattformen zu realisieren.

    Harry Lobster schrieb:

    Wie ist das möglich in der nun 4. Generation von Xamarin Forms !?
    Indem das Xamarin Team, obwohl es von Microsoft gekauft wurde, nach wie vor sehr eigenständig im kleinen Team arbeitet. Und als solches arbeiten sie an dem, was die meisten End-Endwickler am meisten nervt, bzw. sich wünschen. Direkte Integration von KeyUp- bzw. KeyDownEvents gehörte da wohl nicht gerade dazu. Du kannst jedoch gerne mal im GitHub Repo, ein Issue eröffnen, oder aber im Xamarin Forum direkt danach Fragen, vielleicht hat dort ja einer eine bessere Antwort als ich parat.

    Andere Frage jedoch, könntest du eben kurz erläuterm wozu genau du diese Events bräuchtest?