-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft im Allgemeinen Datenverarbeitungssysteme. Genauer gesagt betrifft die vorliegende Offenbarung virtuelle Tastaturen für Datenverarbeitungssysteme, wie z. B. eine tragbare (Handheld) mobile Computervorrichtung.
-
ALLGEMEINER STAND DER TECHNIK
-
Wenn eine Person (der „Benutzer”) mit einer Softwareanwendung auf einem Datenverarbeitungssystem interagiert, kann die Softwareanwendung bewirken, dass das Datenverarbeitungssystem verschiedene Eingabeobjekte zur Erfassung von Informationen vom Benutzer anzeigt. Diese Eingabeobjekte können Textfelder und andere Benutzeroberflächen(UI, User Interface)-Objekte anzeigen. Beispielsweise kann eine E-Mail-Anwendung ein Popup-Fenster darstellen, das den Benutzer zur Eingabe seiner Zugangsdaten auffordert, eine Buchhaltungsanwendung kann eine Benutzeroberfläche zur Erfassung von Betriebsausgaben anzeigen, oder eine Internet-Browser-Anwendung kann eine Webseite für die Registrierung bei einer Website für soziale Interaktion oder ein Fenster zur Teilnahme am Online-Chat anzeigen.
-
Für die Zwecke der vorliegenden Offenbarung beziehen sich die Substantive ”Display” und ”Monitor” auf die Hardwarekomponente, die das Datenverarbeitungssystem für die Darstellung visueller Informationen für den Benutzer verwendet. Das Substantiv „Bildschirm” bezieht sich auf alle Inhalte, die zu einem bestimmten Zeitpunkt auf einem Monitor dargestellt werden. Das Substantiv „Fenster” bezieht sich auf einen Teil des Displays, der von einer Anwendung zur gemeinsamen Darstellung eines Satzes in Beziehung stehender Inhaltselemente verwendet wird. Das Substantiv „Seite” bezieht sich auf einen Satz in Beziehung stehender Inhaltselemente, die gemeinsam in einem Fenster dargestellt werden sollen, obwohl möglicherweise nicht alle Elemente gleichzeitig in das Fenster passen; und möglicherweise ist Scrollen bzw. Blättern, das Verschieben der Ansicht bzw. Vergrößern der Ansicht erforderlich, um einige Teile der Seite in das Fenster zu bringen. Das Substantiv „elektronisches Formular” bezieht sich auf eine Seite, die ein oder mehrere Eingabeobjekte für die Erfassung von Informationen vom Benutzer enthält. Daher kann beispielsweise ein Datenverarbeitungssystem einen Bildschirm darstellen, der mehrere Fenster enthält. Eines dieser Fenster kann eine Webseite einer Web-basierten E-Mail-Anwendung darstellen. Diese Seite kann Eingabeobjekte für die Registrierung bei der E-Mail-Anwendung umfassen. Dementsprechend kann diese Seite als elektronisches Formular bezeichnet werden. Ein Teil des elektronischen Formulars kann im Fenster sichtbar sein. Der Benutzer kann im Fenster nach unten scrollen bzw. blättern, um mehr von dem elektronischen Formular zu sehen.
-
Das Ausfüllen von elektronischen Formularen auf einem Desktop- oder Laptop-Computer mit einem Full-Size-Monitor, einer separaten Full-Size-Tastatur und einer Maus oder einem anderen Zeigegerät kann relativ einfach sein. Der Full-Size-Monitor kann es dem Benutzer ermöglichen, die meisten Textfelder und andere UI-Objekt des elektronischen Formulars anzuzeigen. Die Full-Size-Tastatur kann eine „Tabulator”(„Tab”)-Taste enthalten, die dem Benutzer eine einfache Navigation zwischen nebeneinander liegenden Textfeldern des elektronischen Formulars ermöglicht. Darüber hinaus kann die Maus dem Benutzer eine Interaktion mit bestimmten Eingabeobjekten auf dem elektronischen Formular (z. B. Schaltflächen für Funktionen wie „Bestätigen”, „Speichern” oder „Senden”) ermöglichen, solange das elektronische Formular klein genug bzw. der Monitorbildschirm groß genug ist, um diese Eingabeobjekte gemeinsam mit dem Rest des Formulars anzuzeigen.
-
Jedoch wurden in den letzten Jahren ein paar Datenverarbeitungssysteme entwickelt, um ohne separate Eingabevorrichtungen, wie z. B. Tastatur und Maus, betreibbar zu sein. Beispielsweise kann eine tragbare (Handheld) mobile Computervorrichtung (eine „Handheld-Vorrichtung”) eine Touchscreen-Technologie zur Bereitstellung von sowohl visuellen Ausgaben als auch Benutzereingaben auf dem Bildschirm verwenden. Insbesondere kann die Handheld-Vorrichtung auf ihrem Display eine Zusammenstellung von Schaltflächen bzw. anderen Objekten („virtuelle Tastaturkomponenten”) darstellen, die gemeinsam wie eine Tastatur aussehen. Und wenn der Benutzer die virtuellen Tastaturkomponenten, die wie Tasten aussehen, berührt, kann die Handheld-Vorrichtung so reagieren, als ob der Benutzer entsprechende Tasten auf einer tatsächlichen Tastatur gedrückt hätte. Für die Zwecke der vorliegenden Offenbarung bezieht sich der Begriff „virtuelle Tastatur” auf eine Zusammenstellung auswählbarer virtueller Tastaturkomponenten (z. B. alphanumerische Schaltflächen), die von einem Datenverarbeitungssystem in einem vorbestimmten Teil des Bildschirms angezeigt werden. Dieser Teil des Bildschirms kann als virtuelles Tastaturbild oder -fenster bezeichnet werden. Im Gegensatz dazu bezeichnet der Begriff „konventionelle Tastatur” eine physische Tastatur, die sich vom Display unterscheidet. Gleichermaßen bezieht sich der Begriff „Taste” auf einen Teil einer konventionellen Tastatur, der gedrückt wird, um eine Benutzereingabe zu leisten, wobei sich der Begriff „virtuelle Taste” auf eine auswählbare virtuelle Tastaturkomponente bezieht, die als Teil einer virtuellen Tastatur dargestellt ist. Wie oben angegeben, können virtuelle Tasten auch als Schaltflächen bezeichnet werden.
-
Typischerweise bietet ein Betriebssystem (OS) einer Handheld-Vorrichtung eine standardmäßige virtuelle Tastatur, und Anwendungen, die auf der Vorrichtung ausgeführt werden, können diese standardmäßige virtuelle Tastatur standardmäßig verwenden. Da eine derartige virtuelle Tastatur von mehreren Anwendungen verwendet werden kann, kann sie als virtuelle Allzweck-Tastatur bezeichnet werden. Darüber hinaus können Dritte virtuelle Tastaturen mit anderen Funktionen zur Installation und Verwendung auf Handheld-Vorrichtungen erstellen. Beispielsweise ermöglicht es die virtuelle Tastatur SwypeTM von Swype, Inc., einem Benutzer, eine Reihe von virtuellen Tasten auszuwählen, ohne dass dieser seinen Finger zwischen den Tasten heben muss, und eine Handheld-Vorrichtung kann es ihrem Benutzer ermöglichen, die SwypeTM Tastatur anstatt einer standardmäßigen virtuellen Tastatur zu installieren und verwenden. Da eine derartige virtuelle Tastatur auch von mehreren Anwendungen verwendet werden kann, kann sie auch als virtuelle Allzweck-Tastatur bezeichnet werden. Darüber hinaus hat ein Entwickler einer Softwareanwendung die Möglichkeit, speziell für diese Anwendung eine neue virtuelle Tastatur erstellen. Der Entwickler kann möglicherweise sogar andere virtuelle Tastaturen mit anderen virtuellen Tasten für jeden verschiedenen Bildschirm oder jedes elektronische Formular in dieser Anwendung erstellen. Diese Arten von virtuellen Tastaturen können als anwendungsspezifische virtuelle Tastaturen oder formularspezifische virtuelle Tastaturen bezeichnet werden. Allerdings gibt es viele Gründe dafür, dass Entwickler anwendungsspezifische virtuelle Tastaturen und formularspezifische virtuelle Tastaturen vermeiden; dazu zählen Gründe im Zusammenhang mit der entsprechend anfallenden Zeit und den Kosten für die Erstellung und Verwaltung derartiger virtueller Tastaturen. Folglich verwenden Anwendungen für Handheld-Vorrichtungen typischerweise virtuelle Allzweck-Tastaturen, die vom OS bereitgestellt werden.
-
Virtuelle Tastaturen ermöglichen den Entwicklern von Handheld-Vorrichtungen die Produktion von Vorrichtungen in kleineren Größen und einer geringeren Anzahl mechanischer Teile im Vergleich zu Vorrichtungen mit einem Monitor und einer separaten konventionellen Tastatur. Jedoch kann das Ausfüllen von elektronischen Formularen auf einer Handheld-Vorrichtung mit einer virtuellen Tastatur eine Herausforderung darstellen.
-
Beispielsweise bevorzugen manche Benutzer die Haptik einer physischen Tastatur mit Tasten, die gedrückt werden können. Darüber hinaus kann die Größe des Bildschirms viele Herausforderungen darstellen, da die Handheld-Vorrichtung möglicherweise einen kleinen Bildschirm verwendet, der nur sehr wenig Platz oder Raum für die Anzeige von Informationen für den Benutzer bietet.
-
Wenn beispielsweise ein elektronisches Formular für eine Handheld-Vorrichtung viel Inhalt umfasst, muss der Benutzer aufgrund der geringen Größe des Bildschirms u. U. die Ansicht für einen Teil des elektronischen Formulars vergrößern, um den Text oder andere UI-Objekte in dem Teil groß genug darzustellen, um diese lesen oder verwenden zu können. Allerdings wird durch Vergrößern der Ansicht in der Regel der Anteil des elektronischen Formulars, der auf dem Bildschirm sichtbar ist, reduziert, wobei die Teile des Formulars, die sich außerhalb des Bildschirmrands befinden, nicht mehr angesehen werden können. Darüber hinaus werden diese Herausforderungen noch verschärft, wenn ein großer Teil des Bildschirms durch die virtuelle Tastatur belegt wird. Darüber hinaus bietet die virtuelle Tastatur u. U. keine virtuellen Tasten, die wie die Tabulatortaste einer konventionellen Tastatur zur Unterstützung der Navigation im elektronischen Formular arbeiten.
-
Aus diesem Grund muss der Benutzer u. U. zusätzliche Vorgänge zum Vergrößern der Ansicht sowie Vorgänge zum Verschieben der Ansicht und zum Auswählen vornehmen, um die Eingabeobjekt in diesen Teilen des elektronischen Formulars, die aus dem Bildschirm hinaus vergrößert wurden, anzuzeigen und auszuwählen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Funktionen und Vorteile der vorliegenden Erfindung gehen aus den beiliegenden Ansprüchen, der folgenden detaillierten Beschreibung von einer oder mehreren Beispielausführungen sowie den entsprechenden Figuren hervor. Dabei gilt Folgendes:
-
1 ist ein Blockdiagramm eines Datenverarbeitungssystems mit einem virtuellen Tastaturmodul gemäß mindestens einer Beispielausführung;
-
2A, 2B und 2C zeigen schematische Diagramme, die verschiedene Ausgabekonfigurationen gemäß mindestens einer Beispielausführung darstellen;
-
3 zeigt ein Flussdiagramm eines Prozesses zur dynamischen Anpassung einer virtuellen Tastatur gemäß mindestens einer Beispielausführung; und
-
4A bis 4D zeigen Blockdiagramme, die Komponenten zur Bereitstellung virtueller Tastaturen gemäß verschiedener alternativer Ausführungsformen veranschaulichen.
-
DETAILLIERTE BESCHREIBUNG VON EINER ODER MEHREREN AUSFÜHRUNGSFORMEN
-
Eine virtuelle Allzweck-Tastatur kann standardmäßig grundsätzlich wie eine Standard-QWERTY-Tastatur eingerichtet sein. Darüber hinaus kann der Benutzer durch Anschlagen einer Optionsschaltfläche auf der virtuellen Tastatur die vorhandenen virtuellen Tasten oder Schaltflächen zu einer Änderung veranlassen. Beispielsweise kann der Benutzer durch Anschlagen einer „SYM”-Schaltfläche die virtuelle Tastatur zu einer Änderung veranlassen, um Zahlensymbole und allgemeine Symbole anstatt von alphabetischen Zeichen anzuzeigen. Eine virtuelle Allzweck-Tastatur mit virtuellen Schaltflächen, die sich nicht ändern, sofern keine Änderung durch den Benutzer angefordert wird (z. B. durch Berühren einer „SYM”-Schaltfläche oder einer „Umschalt”-Schaltfläche), kann als statische virtuelle Tastatur bezeichnet werden.
-
Wenn eine Person eine Handheld-Vorrichtung mit einer statischen virtuellen Tastatur für die Interaktion mit einem elektronischen Formular verwendet, muss die Person u. U. viele unterschiedliche Vorgänge ausführen, und zumindest einige der Vorgänge können möglicherweise ziemlich schwierig sein. Um zu beginnen, muss der Benutzer u. U. die Ansicht vergrößern, um die Größe des Textes und anderer UI-Objekte im elektronischen Formular auf eine lesbare Größe zu vergrößern. Der Benutzer muss dann u. U. ein erstes Feld für die Eingabe auswählen (z. B. ein Feld für den Benutzernamen). In Reaktion darauf, dass der Benutzer ein alphanumerisches Eingabefeld auswählt, kann das Betriebssystem automatisch veranlassen, dass eine virtuelle Tastatur in einem vorbestimmten Teil des Bildschirms angezeigt wird (oder „aufklappt”), während zudem ein blinkender Cursor am Anfang des ausgewählten Eingabefelds angezeigt wird. Wenn ein Eingabefeld ausgewählt wurde, kann das Feld als aktiv oder im Fokus befindlich bezeichnet werden. Genauso kann die virtuelle Tastatur, wenn sie angezeigt wird, als aktiv betrachtet werden, und wenn sie nicht angezeigt wird, kann sie als inaktiv betrachtet werden. Wenn die virtuelle Tastatur aktiv ist, kann das Fenster für die virtuelle Tastatur die untere Hälfte des Darstellungsraums bedecken und dadurch den verfügbaren Platz für die Anzeige des elektronischen Formulars deutlich verringern. Folglich wird die virtuelle Tastatur wahrscheinlich Textfelder und andere UI-Objekte im elektronischen Formular (z. B. Befehlsschaltflächen für Funktionen, wie „Bestätigen”, „Speichern” oder „Senden”) verdecken.
-
In jedem Fall kann der Benutzer nach dem Aufklappen der virtuellen Tastatur die virtuelle Tastatur für die Eingabe alphanumerischer Daten für das aktive Eingabefeld verwenden. Nach der Eingabe der gewünschten Daten für das erste Eingabefeld muss der Benutzer u. U. die Ansicht für das elektronische Formular auf dem Bildschirm vergrößern bzw. verschieben, um das nächste Eingabefeld in dem Teil des Bildschirms anzuzeigen, der nicht durch die virtuelle Tastatur belegt ist. Der Benutzer muss dann die Ansicht vergrößern, um den Text im elektronischen Formular groß genug zu machen, damit er leserlich ist, und geprüft werden kann, dass das nächste gewünschte Eingabefeld gefunden wurde. Der Benutzer kann dann das Eingabefeld auswählen und die virtuelle Tastatur zur Eingabe weiterer Daten verwenden. Der Prozess zum Verschieben der Ansicht, Vergrößern der Ansicht, Auswählen und Eingeben kann fortgeführt werden, bis der Benutzer alle für das elektronische Formular erforderlichen Daten eingegeben hat. Der Benutzer kann dann weitere Vorgänge zum Verschieben und Vergrößern der Ansicht ausführen, um ein UI-Objekt für die gewünschte Aktion (z. B. „Bestätigen”, „Speichern” oder „Senden”) zu finden und auszuwählen. Darüber hinaus kann es im Verlauf dieses Prozesses, wenn Eingabeobjekte klein und/oder zu nah beieinander sind, schwierig sein, ein gewünschtes Eingabeobjekt auszuwählen.
-
Gemäß der vorliegenden Offenbarung parst das virtuelle Tastaturmodul in mindestens einer Ausführungsform das jeweils verwendete elektronische Formular und ändert dynamisch eine virtuelle Tastatur basierend auf den ermittelten Attributen des Formulars. Damit stellt das virtuelle Tastatur-Modul eine dynamisch angepasste virtuelle Allzweck-Tastatur zur Verfügung.
-
Wenn das virtuelle Tastatur-Modul beispielsweise feststellt, dass ein elektronisches Formular mehr als ein Eingabeobjekt aufweist, kann das virtuelle Tastatur-Modul automatisch eine oder mehrere Navigationsschaltflächen zur virtuellen Tastatur (z. B. eine Schaltfläche „Nächste” und „Vorherige”) hinzufügen, wobei es diese Navigationsschaltflächen dem Benutzer ermöglichen, den Fokus vom aktuellen Eingabeobjekt auf das nächste Eingabeobjekt oder das vorherige Eingabeobjekt zu setzen.
-
Darüber hinaus kann das virtuelle Tastatur-Modul automatisch Befehlsschaltflächen im Formular erkennen und in Reaktion darauf automatisch entsprechende Befehlsschaltflächen zur virtuellen Tastatur hinzufügen. Wenn das elektronische Formular beispielsweise ein Popup-Fenster für Zugangsdaten mit Textfeldern für eine Benutzerkennung und ein Passwort sowie mit Schaltflächen „Bestätigen” und „Abbrechen” ist, kann das virtuelle Tastatur-Modul automatisch eine Schaltfläche „Bestätigen” zur virtuellen Tastatur hinzufügen. Wenn der Benutzer die Schaltfläche „Bestätigen” in der virtuellen Tastatur anschlägt, kann das virtuelle Tastatur-Modul diese Eingabe in eine Eingabe umwandeln, um anzugeben, dass der Benutzer die Schaltfläche „Bestätigen” im Formular ausgewählt hat, und daraufhin kann die zugrundeliegende Anwendung die Eingabe entsprechend verarbeiten. Darüber hinaus kann das virtuelle Tastatur-Modul automatisch andere Eingabeobjekte im Formular erkennen und in Reaktion darauf automatisch entsprechende virtuelle Tastaturkomponenten zur virtuellen Tastatur hinzufügen. Wenn das elektronische Formular beispielsweise ein Eingabeobjekt für die Auswahl einer Farbe umfasst, kann das virtuelle Tastatur-Modul automatisch eine Farbauswahl zur virtuellen Tastatur hinzufügen, und wenn das elektronische Formular ein Textfeld zum Empfangen von Datumsdaten enthält, kann das virtuelle Tastatur-Modul eine Datumsauswahl zur virtuellen Tastatur hinzufügen.
-
1 ist ein Blockdiagramm eines Datenverarbeitungssystems 20 mit einem virtuellen Tastaturmodul 60 gemäß einer Beispielausführung. In der veranschaulichten Ausführungsform ist das Datenverarbeitungssystem 20 eine tragbare (Handheld) mobile Computervorrichtung 20 mit mindestens einem Prozessor 30 sowie Datenspeicher 34 und einem Display 40, das auf den Prozessor 30 reagiert. In der dargestellten Ausführungsform ist das virtuelle Tastatur-Modul 60 als Software implementiert, die in einem Datenspeicher 34 gespeichert ist und vom Prozessor 30 ausgeführt wird, um die im Folgenden beschriebene Funktionalität zu bieten. Ein OS 50 und eine oder mehrere Anwendungen 52 sind ebenfalls im Datenspeicher 34 gespeichert, und wenn diese Komponenten auf dem Prozessor 30 ausgeführt werden, können diese das virtuelle Tastatur-Modul 60 aufrufen.
-
In der Ausführungsform von 1 umfasst das virtuelle Tastatur-Modul 60 eine Parsing-Engine 62, eine Layout-Engine 64 und einen Eingabemanager 66. Wie im Folgenden ausführlicher beschrieben, können die Parsing-Engine 62, Layout-Engine 64 und der Eingabemanager 66 zusammenarbeiten, um die dynamische Anpassung der virtuellen Tastatur basierend auf Attributen des elektronischen Formulars, mit dem der Benutzer interagiert, zu gewährleisten. In 1 folgen die Komponenten einer bestimmten Konstruktionsarchitektur. In alternativen Ausführungsformen können andere Architekturen zur Bereitstellung dynamisch angepasster virtueller Allzweck-Tastaturen verwendet werden. Beispielsweise anstatt ein zentrales virtuelles Tastatur-Modul zu verwenden, das die Parsing-Engine, Layout-Engine und den Eingabemanager als Unterkomponenten enthält, kann die Funktionalität mithilfe eines virtuellen Tastatursystems implementiert werden, das ein oder mehrere gleichgestellte Module verwendet, die zusammenarbeiten, um eine dynamisch angepasste virtuelle Allzweck-Tastatur bereitzustellen. Darüber hinaus kann ein Teil der Funktionalität durch andere Module bereitgestellt werden. Beispielsweise können einige oder alle Funktionen des Eingabemanagers als Teil eines Textuntersystems, als Teil des OS oder als Teil eines anderen Moduls implementiert werden. Gleichermaßen können einige oder alle Funktionen der Parsing-Engine und anderer Komponenten als Teil eines anderen Moduls implementiert werden. Viele zusätzliche Variationen können in unterschiedlichen Ausführungsformen verwendet werden, um die im vorliegenden Text beschriebene Funktionalität bereitzustellen.
-
4A bis 4D zeigen Blockdiagramme, die Komponenten zur Bereitstellung virtueller Tastaturen gemäß verschiedener alternativer Ausführungsformarchitekturen 410–425 veranschaulichen. Beispielsweise werden der virtuelle Tastaturmanager, die Parsing-Engine, die Layout-Engine und der Eingabemanager gemäß der Architektur 410 als relativ unabhängige gleichrangige Komponenten auf derselben hierarchischen Ebene wie das OS implementiert. Die Architektur 411 ist ähnlich, jedoch ist die Layout-Engine als Teil des virtuellen Tastatur-Moduls implementiert. Die Architektur 412 ähnelt der Architektur 411, jedoch ist die Parsing-Engine als Teil des Eingabemanagers implementiert. Die Architektur 413 ähnelt der Architektur 411, jedoch ist das virtuelle Tastatur-Modul als Teil der Layout-Engine implementiert. In dieser Hierarchie kann die Layout-Engine auch aus mehreren verschiedenen virtuellen Tastatur-Modulen auswählen. Die Architektur 414 ist wie die Architektur 413, jedoch ist die Parsing-Engine als Teil des Eingabemanagers implementiert. Auch in dieser Hierarchie kann die Layout-Engine aus mehreren verschiedenen virtuellen Tastatur-Modulen auswählen. Die Architektur 415 ist wie die Architektur 411, jedoch ist der Eingabemanager auch als Teil des virtuellen Tastatur-Moduls implementiert. Für die Architekturen 410–415 sind die Komponenten nicht direkt Teil des OS.
-
In der Architektur 416 sind die Komponenten als relativ unabhängige gleichrangige Komponenten im OS implementiert. Die Architektur 417 ist wie die Architektur 416, jedoch ist die Layout-Engine als Teil des virtuellen Tastatur-Moduls implementiert. Die Architektur 418 ist wie die Architektur 417, jedoch ist die Parsing-Engine als Teil des Eingabemanagers implementiert. Die Architektur 419 ist wie Architektur 416, jedoch ist das virtuelle Tastatur-Modul als Teil der Layout-Engine implementiert. Die Architektur 420 ist wie die Architektur 419, jedoch ist die Parsing-Engine als Teil des Eingabemanagers implementiert. Für die Architekturen 419 und 420 kann die Layout-Engine aus mehreren virtuellen Tastaturen auswählen.
-
Die Architektur 421 ist wie die 1 dargestellte Architektur, jedoch ist das virtuelle Tastatur-Modul als Teil des OS implementiert. Die Architektur 422 ist wie die Architektur 421, jedoch ist die Parsing-Engine relativ unabhängig vom virtuellen Tastatur-Modul implementiert.
-
In den Architekturen 423–425, ist eine oder mehrere Komponenten zur Bereitstellung von virtuellen Tastaturen als Teil einer Anwendung implementiert. Gemäß der Architektur 423 ist beispielsweise die Parsing-Engine als Teil der Anwendung implementiert, wobei die anderen Komponenten gemäß X eingebettet sind, wobei X mit einer beliebigen Architektur aus dem Satz umfassend die Architekturen 410–422, wobei die Parsing-Engine aus diesen Architekturen durch die Parsing-Engine in der Anwendung ersetzt wird) übereinstimmt. Gleichermaßen bezeichnet Y für die Architektur 424 eine beliebige Architektur aus dem Satz umfassend die Architekturen 410–422, wobei das virtuelle Tastatur-Modul, die Layout-Engine und die Parsing-Engine aus diesen Architekturen durch das virtuelle Tastatur-Modul, die Layout-Engine und die Parsing-Engine aus Architektur 424 ersetzt wird. Gleichermaßen bezeichnet Z für die Architektur 425 eine beliebige Architektur aus dem Satz umfassend die Architekturen 410–422, wobei das virtuelle Tastatur-Modul, die Layout-Engine und die Parsing-Engine aus diesen Architekturen durch das virtuelle Tastatur-Modul, die Layout-Engine und die Parsing-Engine aus Architektur 425 ersetzt wird.
-
Mehrere verschiedenen Programmiersprachen oder Kombinationen von Programmiersprachen und dergleichen können für die Implementierung der erforderlichen Komponenten in mehreren verschiedenen Umgebungen verwendet werden. Beispielsweise kann eine Kombination aus C und C++ verwendet werden, sowie spezifische UI-Hooks für die jeweilige UI-Technologie (z. B. JavaScript für Hypertext Markup Language (HTML), Qt Meta Language oder Qt Modeling Language (QML) und C++ für QML usw.). Implementierungsdetails können für Implementierungen, die für verschiedene Plattformen oder Vorrichtungen ausgelegt sind, unterschiedlich sein, wie z. B. Vorrichtungen, die das Android-Betriebssystem verwenden, Vorrichtungen, die das iPhone-Betriebssystem verwenden, Vorrichtungen, die das Windows CE-Betriebssystem verwenden usw. 2A, 2B und 2C zeigen schematische Diagramme, die verschiedene Ausgabekonfigurationen auf dem Display 40 der mobilen Vorrichtung 20 darstellen. Beispielsweise stellt 2A eine Sequenz von grafischen Benutzeroberflächen-Bildschirmen (GUI, Graphical User Interface) dar, die von der Anwendung 52 in Zusammenarbeit mit dem Betriebssystem (OS) 50 und dem virtuellen Tastatur-Modul 60 auf dem Display 40 angezeigt werden. Die Anwendung 52 kann eine Web-Browser-Anwendung oder eine andere Anwendungsart sein, die Benutzereingaben zulässt. Zur Veranschaulichung von einer oder mehreren Funktionen von einer oder mehreren Ausführungsformen der vorliegenden Erfindung zeigen die veranschaulichten Bildschirme verschiedene Optionen und Vorgänge, die dem Benutzer die Anmeldung an einem E-Mail-Account ermöglichen. Natürlich können dieselben Funktionen, ähnliche Funktionen und/oder zugehörige Funktionen von verschiedenen Anwendungsarten für viele andere Zwecke verwendet werden.
-
Der Bildschirm 100 in 2A stellt ein Fenster dar, das für die Anzeige verschiedener Elemente für den Benutzer den gesamten Raum auf dem Display 40 verwendet. Diese Elemente umfassen einige Ausführungen und Anweisungen in Textform, gefolgt von zwei Textfeldern 112 und 114 sowie einer Befehlsschaltfläche 118. Für die Zwecke der vorliegenden Offenbarung bezeichnet der Begriff „Textfeld” ein Eingabefeld, das alphabetische Eingaben, numerische Eingaben oder sowohl alphabetische als auch numerische (alphanumerische) Eingaben akzeptiert. In den 2A bis 2C dient das Textfeld 112 zum Erhalten einer Benutzerkennung vom Benutzer und das Textfeld 114 zum Erhalten eines Passworts vom Benutzer. Die Befehlsschaltfläche 118 dient zum Auslösen einer Registrierungsfunktion oder eines Ereignisses, nachdem der Benutzer eine Benutzerkennung und ein Passwort eingegeben hat. Für die Zwecke der vorliegenden Offenbarung werden Objekte, die eine alphabetische oder numerische Eingabe (z. B. Textfelder 112 und 114) akzeptieren, als Texteingabefelder oder Texteingabeobjekte bezeichnet. Im Gegensatz dazu können Eingabeobjekte, die keine alphabetische oder numerische Eingabe akzeptieren, als Nicht-Texteingabeobjekte bezeichnet werden. Gleichermaßen können virtuelle Tastaturkomponenten, bei denen es sich nicht um Textschaltflächen handelt (wie z. B. alphabetische Schaltflächen und numerische Schaltflächen) als Nicht-Textkomponenten für virtuelle Tastaturen bezeichnet werden.
-
Wie im gestrichelten Kreis 122 im Bildschirm 120 gezeigt, kann der Benutzer zum Eingeben einer Benutzerkennung auf das Textfeld 112 tippen.
-
In Reaktion darauf kann das virtuelle Tastatur-Modul 60 wie in Bildschirm 140 gezeigt ein Tastaturfenster 160 über der unteren Hälfte des Displays 40 öffnen, wobei ein verkürztes elektronisches Formularfenster 150 oben im Display 40 hinterlassen wird. (Im Gegensatz dazu wird das elektronische Formularfenster 150 nicht im Bildschirm 120 angezeigt, da das Formularfenster 150 in diesem Fall flächengleich mit Display 40 ist (d. h. die gesamte Fläche davon einnimmt)). Für die Zwecke der vorliegenden Offenbarung kann das Tastaturfenster 160 auch als virtuelle Tastatur 160 bezeichnet werden. Wie in Bildschirm 140 dargestellt, wenn die virtuelle Tastatur 160 offen oder aktiv ist, sind einige wichtige Teile des elektronischen Formulars, die von der Anwendung 52 für die Benutzereingabe verwendet werden, im elektronischen Formularfenster 150 nicht sichtbar.
-
Allerdings führt das virtuelle Tastatur-Modul 60, bevor das virtuelle Tastatur-Modul 60 die virtuelle Tastatur 160 anzeigt, eine Vielzahl an Vorgängen aus, um die virtuelle Tastatur 160 basierend auf den Attributen des verwendeten elektronischen Formular dynamisch anzupassen.
-
3 zeigt ein Flussdiagramm eines Prozesses zur dynamischen Anpassung einer virtuellen Tastatur gemäß mindestens einer Beispielausführung. Der veranschaulichte Prozess kann beginnen, wenn der Benutzer auf ein Textfeld eines elektronischen Formulars tippt, wie z. B. Textfeld 112. Wie in Block 300 dargestellt, übergibt die mobile Vorrichtung 20 in Reaktion auf das Erkennen eines Tippens auf ein Textfeld die Steuerung an das virtuelle Tastatur-Modul 60. Wie in Block 310 dargestellt, kann das virtuelle Tastatur-Modul 60 dann bestimmen, ob sich der Inhalt des elektronischen Formulars geändert hat. Wenn das virtuelle Tastatur-Modul 60 beispielsweise zum ersten Mal für das aktuelle elektronische Formular aufgerufen wird, kommt das virtuelle Tastatur-Modul 60 zu dem Schluss, dass der Inhalt geändert wurde. Darüber hinaus kann das virtuelle Tastatur-Modul 160 zu dem Schluss kommen, dass der Inhalt geändert wurde, wenn (a) eine Komponente zur Bereitstellung von Informationen für das Formular aktualisierte Daten bereitstellt; (b) der Verlust der Netzwerkkonnektivität für ein Formular erkannt wird, das von einer oder mehreren Online-Quellen bezogen wird, oder für ein Formular, das eine Verbindung zum Akzeptieren von Benutzereingaben oder zum Fortfahren mit Benutzereingaben benötigt; oder (c) andere Änderungen erkannt werden.
-
Wenn der Inhalt geändert wurde, kann die Parsing-Engine 62 das elektronische Formular – wie in Block 312 dargestellt – parsen. Im Besonderen identifiziert oder erkennt die Parsing-Engine 62 verschiedene Eingabeobjekte oder Widgets im Formular und erfasst verschiedene zu diesen Objekten zugehörige Attribute. Beispielsweise kann die Parsing-Engine 62 für das in Bildschirm 100 in 2A dargestellte elektronische Formular erfassen, dass das Formular das Textfeld 112 enthält, dass das Textfeld 112 mit „Benutzerkennung” beschriftet ist und dass das Textfeld 112 alphanumerische Daten bis zu einer bestimmten Länge akzeptiert. Die Parsing-Engine 62 kann ähnliche Informationen für das Textfeld 114 erfassen. Die Parsing-Engine 62 kann darüber hinaus erfassen, dass das elektronische Formular die Befehlsschaltfläche 118 umfasst, und dass die Befehlsschaltfläche 118 mit „Registrieren!” beschriftet ist, und dass die Befehlsschaltfläche 118 so konfiguriert ist, dass sie, wenn sie ausgewählt wird, ein bestimmtes Ereignis oder eine Funktion auslöst. Bei anderen Fällen können elektronische Formulare viele andere Arten von Eingabeobjekten enthalten, und die Parsing-Engine 62 kann das relevante Attribut für diese Objekte erfassen. Die Eingabeobjekte, für die die Parsing-Engine 62 Attribute extrahiert, umfassen ohne Einschränkung folgende Objekttypen: Dropdown-Listen, Kombinationsfelder, Datumsfelder, Uhrzeitfelder, numerische Felder, Adressen, Farben, Karten, Kontakte, Uniform Resource Locators (URLs) oder andere Dateipfade, Audio-/Videoobjekte, Unterschriften oder handschriftliche Eingaben (z. B. Eingabe von Kanji-Schriftzeichen).
-
Die Parsing-Engine
62 kann Attribute für Eingabeobjekte auch basierend auf Tags erfassen, die mit diesen Objekten verknüpft sind. Beispielsweise kann ein elektronisches Formular Klassen-Tags für die Identifikation von Eingabeobjekten umfassen, die für die Eingabe von einer bestimmten Datenart vorgesehen sind. Diese Klassen-Tags entsprechen den Konventionen wie z. B. eines bestimmten Mikroformats. Beispielsweise können geographische Koordinaten durch folgenden Tag-Satz und Klassen in einem HTML-Dokument dargestellt werden:
-
Ein in HTML geschriebenes elektronisches Formular kann dieselben Klassen für das Codieren eines Satzes von Feldern verwenden, die den Benutzer zur Eingabe eines genauen Standorts auffordern:
-
Wenn das Formular geparst wird, kann die Parsing-Engine 62 erfassen, dass das Eingabefeld „lat” für eine Breitengradkoordinate und das Eingabefeld „long” für eine Längengradkoordinate dient. Vergleichbare Techniken können zum Parsen elektronischer Formulare mit Eingabefeldern für die Angabe eines Standorts als Adresse und das Parsen von Formularen mit anderen Arten von Eingabefeldern verwendet werden.
-
Während oder nach dem Parsen des elektronischen Formulars, kann die Parsing-Engine
62 einige oder alle der extrahierten Informationsbestandteile in einer oder mehreren Listen anordnen, die für die Erzeugung dynamischer Schaltflächen für die virtuelle Tastatur verwendet werden sollen. Beispielsweise kann die Parsing-Engine
62 beim Parsen des elektronischen Formulars aus dem Bildschirm
120 folgende strukturierte Liste von UI-Elementbeschreibungen erzeugen:
-
Die Parsing-Engine 62 kann auch die strukturierte Liste von UI-Elementbeschreibungen mit Zustandsinformationen befüllen, wie z. B. ob ein Kontrollkästchen gefüllt wurde, welches Element in einer Dropdown-Liste ausgewählt wurde usw. Darüber hinaus kann die Parsing-Engine die Liste mit kontextbezogenen Information basierend auf der vorherigen Verwendung befüllen. Beispielsweise kann die Parsing-Engine 62 eine Liste oder einen Baum mit Zustandsdaten erstellen, die Information zu vorherigen Einträgen umfassen, die in ein Textfeld eingegeben wurden.
-
Wenn das elektronische Formular eine strukturierte UI ist, kann die Parsing-Engine 62 den Objektspeicher des UI-Frameworks, das das endgültige Layout auf dem Bildschirm beschreibt, untersuchen, um die relevanten Eingabeobjekte und Attribute aus dem Formular zu extrahieren. Strukturierte UIs umfassen ohne Einschränkung Schnittstellen, die auf HTML basieren, Schnittstellen, die auf QML basieren, Schnittstellen, die auf dem GNU Image Manipulation Program(GIMP)-Toolkit (GTK) basieren, Schnittstellen, die auf den Enlightenment Foundation Libraries (EFL) basieren, Schnittstellen, die auf der Software-Bibliothek Clutter basieren, und Schnittstellen, die auf der Extensible Application Markup Language (XAML) basieren. Wenn das elektronische Formular keine strukturierte UI ist, kann die Parsing-Engine 62 andere Aspekte des Formulars untersuchen, um die relevanten Eingabeobjekte und Attribute zu extrahieren.
-
Nach dem Parsen des elektronischen Formulars, oder nach der Entscheidung, dass der Inhalt nicht geändert wurde, übergibt der Prozess an Block 316, wobei das virtuelle Tastatur-Modul 60 den mit dem Formular verknüpften aktuellen Anwendungskontext und Systemkontext bewertet. Beispielsweise kann das virtuelle Tastatur-Modul 60 für Anwendungskontext bewerten, welches Eingabeobjekt im Fokus ist. Für Systemkontext kann das virtuelle Tastatur-Modul 60 bestimmen, welche Anwendungsart das elektronische Formular verwendet, oder was die allgemeine Absicht der Person ist, die diese Anwendung verwendet. Beispielsweise kann das virtuelle Tastatur-Modul 60 entscheiden, dass der Benutzer beabsichtigt, ein Foto zu machen, einen Kontakteintrag zu erstellen oder ein anderes Endergebnis zu erzielen.
-
Daher erkennt das virtuelle Tastatur-Modul zumindest in einer Ausführung automatisch die Steuerungssemantik oder Bedeutungen der Eingabeobjekte eines elektronischen Formulars und passt das Eingabelayout für eine virtuelle Tastatur basierend auf der erkannten Steuerungssemantik dynamisch an. Eine Steuerung hat eine bestimmte Bedeutung, wenn sie in einem bestimmten Kontext verwendet wird. Das virtuelle Tastatur-Modul kann diese Bedeutung erkennen und in weitere Funktionen innerhalb der virtuellen Tastatur umwandeln. Beispielsweise kann ein E-Mail-Client ein Nur-Text-Feld verwenden, um eine „An:”-Adresse vom Benutzer zu erhalten. Der Entwickler kann über diese grundlegende Funktionalität hinausgehen und das Textfeld als ein „E-Mail-Eingabe”-Feld deklarieren. Die hinzugefügte Deklaration stellt weitere Semantik oder Bedeutung bereit, die es daraufhin dem Textfeld ermöglicht, beispielsweise eine Eingabevalidierung durchzuführen, um sicherzustellen, dass der Benutzer eine korrekte E-Mail-Adresse eingibt. Ein virtuelles Tastatur-Modul gemäß der vorliegenden Offenbarung kann diese und andere Arten von Steuerungssemantik für die Bereitstellung besserer virtueller Tastaturen verwenden. Darüber hinaus kann das virtuelle Tastatur-Modul basierend auf dem Layout für das elektronische Formular neue Steuerungssemantik oder Bedeutungen ableiten. Beispielsweise kann ein E-Mail-Client ein Formular mit Feldern für „An:”, „Betreff” und „Text” sowie einer Schaltfläche „Senden” darstellen. Die Kopie der Schaltfläche „Senden” in der Tastatur kann sich, während diese als eine Standardaktion für das Formular gestaltet ist, selbst deaktivieren, wenn das Feld „An:” keine gültige E-Mail-Adresse enthält.
-
Darüber hinaus können alle Interaktionen durch den Benutzer mit dem System oder mit der virtuellen Tastatur sowie allgemeine Kontextänderungen im System dazu führen, dass das virtuelle Tastatur-Modul 60 das elektronische Formular erneut scannt und parst und die virtuelle Tastatur dynamisch ändert. Als ein Beispiel für eine Systemkontextänderung, wenn eine Hintergrundinstallation fertiggestellt wird, die einen neuen Eingabemodus (z. B. eine Standortauswahl für Karten) bereitstellt, und wenn der Benutzer mit einem elektronischen Formular interagiert, das ein Eingabeobjekt aufweist, das einem Adresseintrag entspricht, kann das virtuelle Tastatur-Modul 60 die Standortauswahl für Karten dynamisch zur virtuellen Tastatur hinzufügen.
-
Wie in Block 318 dargestellt, verwendet die Layout-Engine 64, nachdem das virtuelle Tastatur-Modul 60 das elektronische Formular parst und den Kontext auswertet, die Parsing-Ergebnisse und die extrahierten Kontextdaten, um herauszufinden, welche dynamischen virtuellen Tastaturkomponenten in der virtuellen Tastatur berücksichtigt werden sollen. Mit anderen Worten bestimmt die Layout-Engine 64 das Layout und die Darstellung der virtuellen Tastatur basierend auf der strukturierten Liste von UI-Elementen und den extrahierten Kontextdaten.
-
Wenn der Benutzer beispielsweise – unter erneuter Bezugnahme auf Bildschirm 120 in 2A – auf das Textfeld 112 tippt, kann das virtuelle Tastatur-Modul 60 unter Verwendung der Parsing-Engine 62 reagieren, um wie oben beschrieben das elektronische Formular zu parsen und den Kontext zu analysieren, um dann unter Verwendung der Layout-Engine 64 basierend auf den Parsing- und Analyseergebnissen dynamisch zu bestimmen, welche virtuelle Tastaturkomponenten in der virtuellen Tastatur berücksichtigt werden sollen. Beispielsweise kann die Layout-Engine 64 mit Bezug auf Bildschirm 120 bestimmen, dass die virtuelle Tastatur folgende virtuelle Tastaturkomponenten aufweisen soll:
- a) Navigationsschaltflächen (z. B. „Nächste” und „Vorherige”) zum Verschieben des Fokus vom aktuellen Eingabeobjekt auf das vorherige oder nächste Eingabeobjekt;
- b) die Beschriftung für das nächste Eingabeobjekt, die in der Navigationsschaltfläche „Nächste” (entweder mit oder ohne sonstigen Text, wie z. B. „Nächste:”) angezeigt wird;
- c) mehr oder weniger konventionelle alphanumerische virtuelle Tasten;
- d) eine Befehlsschaltfläche zum Auslösen des Ereignisses oder der Aktion, die mit der Befehlsschaltfläche „Registrieren!” auf dem elektronischen Formular verknüpft ist; und
- e) die Beschriftung für die Schaltfläche „Registrieren!”, die in der entsprechenden Befehlsschaltfläche in der virtuellen Tastatur angezeigt wird.
-
Die Layout-Engine 64 kann entscheiden, dass die Navigationsschaltflächen in Reaktion darauf berücksichtigt werden sollen, dass bestimmt wurde, dass das elektronische Formular im Allgemeinen mehr als ein Eingabeobjekt und im Speziellen mehr als ein Textfeld umfasst.
-
Wie in Block 320 dargestellt, kann der Eingabemanager 66 daraufhin eine dynamisch angepasste virtuelle Tastatur zur Folge haben, die diese Funktionen umfasst, um auf dem Display 40 angezeigt zu werden. Beispielsweise kann der Eingabemanager 66 – wie in Bildschirm 140 der 2A gezeigt – eine virtuelle Tastatur 160 darstellen, die eine Navigationsschaltfläche 162 für „Vorh.” oder „Vorherige”, eine Navigationsschaltfläche 164 für „Nächste” und verschiedene mehr oder weniger konventionelle alphanumerische Schaltflächen 166 umfasst. Wie dargestellt, kann der Eingabemanager 66 auch eine Befehlsschaltfläche 168 für „Registrieren!” in der virtuellen Tastatur 160 berücksichtigen. Darüber hinaus kann der Eingabemanager 66 die Befehlsschaltfläche 168 derart konfigurieren, dass sie die Funktion oder das Ereignis, die bzw. das mit der Befehlsschaltfläche 118 verknüpft ist, dazu veranlasst, dass sie bzw. es in Reaktion auf die Benutzerauswahl der Befehlsschaltfläche 168 aufgerufen wird.
-
In anderen Ausführungsformen oder beim Einsatz mit anderen elektronischen Formularen kann der Eingabemanager andere Arten von dynamischen virtuellen Tastaturkomponenten zur virtuellen Tastatur hinzufügen. Derartige virtuelle Tastaturkomponenten können ohne Einschränkung folgende Objekttypen umfassen: Dropdown-Listen, Kombinationsfelder, Datumsfelder, Uhrzeitfelder, Drehfelder (numerische Felder, die mit Pfeil nach oben und Pfeil nach unten verknüpft sind), Adressauswahl, Farbauswahl, Adressauswahl für Karten, Kontaktauswahl, Datei-Browser, Audio-/Videoauswahl mit Vorschau, Unterschriftenpads und handschriftliche Eingaben (z. B. zur Eingabe von Kanji-Schriftzeichen).
-
Unter erneuter Bezugnahme auf Bildschirm 140 kann der Eingabemanager 66 auch den Fokus auf das Textfeld 112 setzen. Für die Zwecke der vorliegenden Offenbarung beinhaltet die Navigationssteuerung das Steuern, welches Eingabeobjekt im Fokus ist. Im Gegensatz dazu beinhaltet die Cursor-Steuerung das Steuern der Position des Cursors oder Carets in einem Eingabefeld.
-
Unter erneuter Bezugnahme auf 3 kann der Eingabemanager 66 dann eine Benutzereingabe erhalten und diese Benutzereingabe wie bei den Blöcken 322 und 324 angegeben verarbeiten. Der Prozess kehrt dann zu Block 310 zurück, wobei das virtuelle Tastatur-Modul 60 bestimmt, ob der Inhalt des elektronischen Formular geändert wurde, und weitere Vorgänge wie oben beschrieben ausführt. Wie bei den Blöcken 318 und 320 dargestellt, kann das virtuelle Tastatur-Modul 60 daraufhin mit dem dynamischen Anpassen oder Ändern der virtuellen Tastatur 160 fortfahren.
-
Beispielsweise kann der Eingabemanager 66 beim Verarbeiten der Benutzereingabe das Textfeld 112 mit einer Eingabe (z. B. „JSmith”) basierend auf den vom Benutzer angetippten alphanumerischen Schaltflächen auffüllen. Wenn der Benutzer dann auf die Schaltfläche „Nächste” tippt (wie in Bildschirm 170 der 2B mit dem gestrichelten Kreis 172 dargestellt), kann der Eingabemanager 66 das elektronische Formular automatisch nach oben scrollen oder blättern, bis das Textfeld 114 oberhalb der virtuellen Tastatur 160 sichtbar wird, und den Fokus in das Textfeld positionieren. Darüber hinaus kann die Layout-Engine 64 die Schaltflächen „Nächste” und „Vorherige” entsprechend anpassen. Beispielsweise kann die Layout-Engine 64 den Text in der Navigationsschaltfläche 164 „Registrieren!” aktualisieren, um anzugeben, dass der Benutzer durch Antippen der Navigationsschaltfläche 164 den Fokus auf die Befehlsschaltfläche 118 wechseln kann. In einer anderen Ausführungsform umfasst die Layout-Engine 64 Beschriftungen von entsprechenden Eingabeobjekten in den Schaltflächen „Vorherige” und „Nächste”.
-
Wie in Bildschirm 180 dargestellt kann der Eingabemanager 66, während der Fokus auf das Textfeld 114 gesetzt ist, das Textfeld 114 basierend auf den vom Benutzer angetippten alphanumerischen Schaltflächen mit Eingaben auffüllen.
-
Darüber hinaus kann der Benutzer – wie im gestrichelten Kreis 192 in Bildschirm 190 der 2C dargestellt – die dynamisch erzeugte Befehlsschaltfläche 168 „Registrieren!” innerhalb der virtuellen Tastatur 160 antippen, um die Registrierungsfunktion auszulösen, obwohl die ursprüngliche Befehlsschaltfläche 118 „Registrieren!” des elektronischen Formulars nicht auf dem Bildschirm 40 angezeigt werden kann. In Reaktion auf das Erkennen, dass der Benutzer die Befehlsschaltfläche 168 angetippt hat, kann der Eingabemanager 66 automatisch die Funktion oder das Ereignis aufrufen, die bzw. das ursprünglich mit der Befehlsschaltfläche 118 verknüpft ist.
-
Darüber hinaus kann das virtuelle Tastatur-Modul 60 weitere Funktionen zur Verbesserung der Benutzererfahrung bei der Interaktion mit elektronischen Formularen auf der mobilen Vorrichtung 20 bereitstellen. Beispielsweise kann das virtuelle Tastatur-Modul 60 eine oder mehrere virtuelle Tastaturkomponenten mit der Fähigkeit zum Erkennen von zwei oder mehreren Eingabemodusarten (z. B. kurzes Antippen und Drücken und Halten, oder kurzes Antippen und langes Antippen) konfigurieren, und das virtuelle Tastatur-Modul 60 kann, je nachdem welcher Eingabemodus verwendet wurde, zwei oder mehrere Funktionen bereitstellen. Beispielsweise kann das virtuelle Tastatur-Modul 60 die Navigationsschaltflächen in der virtuelle Tastatur 160 mit zusätzlicher Funktionalität ausrüsten, die aufgerufen werden kann, wenn der Benutzer eine Navigationsschaltfläche drückt und gedrückt hält, anstatt sie nur anzutippen. Der gestrichelte Kreis 202 in Bildschirm 200 stellt den Benutzer dar, wie der die Navigationsschaltfläche 162 drückt und gedrückt hält. Wie in Bildschirm 200 dargestellt, umfasst diese zusätzlich oder sekundäre Funktionalität in einer Ausführungsform das Bereitstellen eines Popup-Menüs 210, das alle Eingabeobjekte im Formular auflistet, sodass der Benutzer ganz einfach den Fokus direkt auf ein gewünschtes Objekt verschieben kann, indem er lediglich die Beschriftung für das Feld im Popup-Menü antippt. In anderen Ausführungsformen kann das virtuelle Tastatur-Modul andere sekundäre Funktionen vorsehen.
-
Wie bereits beschrieben, kann eine Parsing-Methode ein elektronisches Formular parsen, um das Vorhandensein von Steuerungssemantik zu bestimmen, die mit den Eingabeobjekten im Formular verknüpft ist. Die Methode kann auch das dynamische Anpassen einer virtuellen Tastatur in Reaktion auf die Typen und Attribute dieser Eingabeobjekte beinhalten.
-
Gemäß einer Beispielausführung parst ein virtuelles Tastatur-Modul ein elektronisches Formular, das von einer Software-Anwendung erzeugt und dargestellt wird. Die Software-Anwendung kann ein Web-Browser, eine E-Mail-Anwendung, ein Textverarbeitungsprogramm oder nahezu jede Art von Anwendung sein.
-
Nach dem Parsen des elektronischen Formulars und Analysieren des Kontexts, stellt das virtuelle Tastatur-Modul eine virtuelle Tastatur dar, die dynamisch an das Formular angepasst wurde. Beispielsweise kann das virtuelle Tastatur-Modul eine spezialisierte virtuelle Tastaturkomponente zur virtuellen Tastatur hinzufügen, die gemeinsam mit mehr oder weniger konventionellen alphanumerischen Schaltflächen dargestellt wird. Alternativ dazu kann das virtuelle Tastatur-Modul eine virtuelle Tastatur anzeigen, die die spezialisierten virtuellen Tastaturkomponenten ohne alphanumerische Schaltflächen enthält. Wenn beispielsweise der Fokus auf ein Eingabeobjekt auf dem elektronischen Formular verschoben wird, das mit der Farbauswahl verknüpft ist, kann das virtuelle Tastatur-Modul die virtuelle Tastatur mit einer Farbauswahl befüllen. Alternativ dazu kann das virtuelle Tastatur-Modul auch einige andere virtuelle Tastaturkomponenten (z. B. Navigationsschaltflächen und Befehlsschaltflächen) in der virtuellen Tastatur mit der Farbauswahl berücksichtigen.
-
Die dynamische Integration der virtuellen Tastaturkomponenten kann einem Benutzer eine effizientere Navigation zwischen Textfeldern ermöglichen, da der Benutzer die Ansicht nicht verschieben muss, um ein anderes Textfeld zu aktivieren. Die dynamische virtuelle Tastatur kann dem Benutzer auch einfachere Mechanismen für die Dateneingabe bieten. Darüber hinaus kann die dynamische Berücksichtigung von Befehlsschaltflächen wie „Bestätigen” oder „Speichern” (oder anderer virtuelle Tastaturkomponenten) einem Benutzer die Durchführung von Aktionen ermöglichen, die andernfalls das Verschieben des elektronischen Formulars erfordert hätten.
-
In der obigen Beschreibung wurden einige Funktionen als Eingabeobjekte bezeichnet. Es sollte jedoch klar sein, dass der Begriff „Eingabeobjekt” nicht auf Funktionen beschränkt ist, die durch objektorientierte Programmierung implementiert werden, sondern auch Funktionen zum Empfangen von Benutzereingaben abdeckt, die mithilfe von anderen Arten von Programmiermethoden implementiert werden, einschließlich prozedurale Programmiermethoden, strukturelle Auszeichnungssprachen bzw. Structural Markup Languages (z. B. HTML, XAML usw.) und andere Methoden.
-
Im Hinblick auf die im vorliegenden Text beschriebenen und veranschaulichten Prinzipien und Beispielausführungen ist ersichtlich, dass die veranschaulichten Ausführungsformen hinsichtlich ihrer Anordnung und ihren Einzelheiten geändert werden können, ohne von derartigen Prinzipien abzuweichen. Darüber hinaus lag der Fokus in der vorhergehenden Diskussion zwar auf bestimmten Ausführungsformen, jedoch kommen auch andere Konfigurationen in Betracht. Daher beziehen sich auch Satzteile, wie z. B. „in einer Ausführungsform”, „in einer anderen Ausführungsform” oder Ähnliches, die in diesem Text enthalten sind, im Allgemeinen auf mögliche Ausführungsformen und sollen die Erfindung nicht auf bestimmte Konfigurationen von Ausführungsformen beschränken. Wie hier verwendet, können sich die Begriffe auf dieselbe oder verschiedene Ausführungsformen beziehen, die in andere Ausführungsformen kombiniert werden können.
-
Darüber hinaus müssen Komponenten, die als miteinander in Kommunikation befindlich oder als aufeinander reagierend beschrieben werden, sich nicht kontinuierlich miteinander in Kommunikation befinden, sofern nicht ausdrücklich anders angegeben. Es sollte zudem klar sein, dass die hier beschriebenen Hardware- und Softwarekomponenten Funktionselemente repräsentieren, die angemessen in sich geschlossen sind, sodass jedes Element unabhängig von den anderen entworfen, konstruiert oder aktualisiert werden kann. In alternativen Ausführungsformen können viele der Komponenten als Hardware, Software oder Kombinationen aus Hardware und Software zur Bereitstellung der hier beschriebenen und veranschaulichten Funktionalität implementiert werden. Beispielsweise umfassen alternative Ausführungsformen durch Maschinen abrufbare Mediencodierungsanweisungen oder Steuerlogik für die Ausführung der Vorgänge der Erfindung. Solche Ausführungsformen können auch als Programmprodukte bezeichnet werden. Derartige durch Maschinen abrufbare Medien können ohne Einschränkung greifbare Speichermedien umfassen, wie z. B. Magnetplattenspeicher, optische Platten, RAM, Nur-Lese-Speicher (Read only memory, ROM), Flash-Speicher usw. In mindestens einer Ausführungsform können die Anweisungen für alle Komponenten in einem nicht flüchtigen durch Maschinen abrufbaren Medium gespeichert werden. In mindestens einer anderen Ausführungsform können zwei oder mehrere nicht flüchtige durch Maschinen abrufbare Medien zum Speichern der Anweisungen für die Komponenten verwendet werden. Beispielsweise können Anweisungen für eine Komponente in einem Medium und Anweisungen für eine andere Komponente in einem anderen Medium gespeichert werden.
-
Alternativ dazu kann ein Teil der Anweisungen für eine Komponente in einem Medium und der Rest der Anweisungen für diese Komponente (sowie Anweisungen für andere Komponenten) in einem oder mehreren anderen Medien gespeichert werden. Anweisungen können auch in einer verteilten Umgebung verwendet werden und für den Zugriff durch eine Einzel- oder Mehrfachprozessormaschine lokal und/oder extern gespeichert werden. In einigen Ausführungsformen können Teile oder die gesamte Steuerungslogik für die Implementierung der beschriebenen Vorgänge in Hardware-Logik implementiert werden (z. B. als Teil eines integrierten Schaltkreis(IC)-Chips, eines programmierbaren Gate-Array (PGA), eines anwendungsspezifischen integrierten Schaltkreises (ASIC) usw.).
-
Gleichermaßen können, auch wenn einer oder mehrere Beispielprozesse in Hinblick auf bestimmte Vorgänge beschrieben wurden, die in einer bestimmten Reihenfolge ausgeführt werden, zahlreiche Änderungen auf diese Prozesse angewendet werden, um zahlreiche alternative Ausführungsformen der vorliegenden Erfindung abzuleiten. Beispielsweise können alternative Ausführungsformen Prozesse umfassen, die weniger als alle der hier offenbarten Vorgänge verwenden, Prozesse, die zusätzliche Vorgänge verwenden und Prozesse, in denen die einzelnen hier offenbarten Vorgänge kombiniert, aufgeteilt, neu angeordnet oder anderweitig verändert wurden.
-
Angesichts der umfassenden Vielfalt an nützlichen Umsetzungen, die von den hier beschriebenen Beispielausführungen leicht abgeleitet werden können, ist diese detaillierte Beschreibung lediglich als veranschaulichend anzusehen und soll nicht als den Umfang der Erfindung einschränkend verstanden werden. Durch die Erfindung werden daher alle Implementierungen beansprucht, die im Schutzumfang der folgenden Ansprüche liegen und alle Äquivalente zu solchen Implementierungen.