Zum Inhalt springen
rdlabo.devdocs

Entwurfsentscheidungen der Hilfsfunktionen

Diese Hilfsfunktionen lagern wiederkehrende Verbindungsaufgaben aus Etikettendruck-Anwendungen aus. Sie verwenden das in diesem Paket enthaltene Plugin und behalten den vorhandenen nativen Vertrag bei.

Verantwortungsgrenzen

Beobachtete Aufgaben in Anwendungen Gemeinsames Verhalten Verantwortung der Anwendung
Ansichten wiederholen plattform- und modellabhängige Verbindungsprüfungen Capacitor-Plattform auslesen, unterstützte Ports filtern und die gespeicherte beziehungsweise Standardverbindung bestimmen Verbindungsmöglichkeiten anzeigen
Eine zweite Suche trifft ein, während die erste läuft Hilfsfunktionsaufrufe bis zum nativen Abschluss und Entfernen der Listener serialisieren; nach Fehlern wieder bereit sein Entscheiden, wann gesucht wird, und eine Ladeoberfläche anzeigen
Ein gespeicherter Netzwerkdrucker kann die Verbindung verloren haben Einen passenden vorherigen Kanal prüfen und bei Nichtverfügbarkeit erneut suchen Speicher-Callbacks bereitstellen und entscheiden, ob eine erneute Suche sinnvoll ist
Ein Drucker wird manuell eingegeben statt über die Suche gefunden Einen expliziten Port mit Adresse ohne Suchmetadaten oder Ausweichsuche prüfen Das tatsächliche Modell angeben, den Port wählen und nicht verfügbare Ergebnisse behandeln
Suchereignisse wiederholen sich oder verwenden Produktnamensaliase Ergebnisse sammeln und vorhandenen Modell-Enums zuordnen Einen Drucker auswählen oder die Auswahl abbrechen
Ansichten registrieren Listener und werden später geschlossen Eine Sitzung verwaltet Ergebnisse, Druck-Listener und einen endgültigen geschlossenen Zustand; eingereihte native Vorgänge überspringen und verspätete Ergebnisse verwerfen Eine Sitzung pro Ansicht erstellen, beim Verlassen freigeben und nach asynchroner Bilderzeugung closed prüfen, bevor Benutzeroberflächen angezeigt werden

Ein wiederverwendbarer Kandidat und ein explizites Ziel

Die Unterscheidung zwischen Vorbereitung und expliziter Prüfung ist beabsichtigt. Ein vorheriger Drucker ist eine Komfortfunktion, bei der auf eine neue Suche ausgewichen werden kann. Eine ausdrücklich gewählte Adresse ist dagegen ein Ziel: Eine fehlgeschlagene Prüfung darf nicht stillschweigend einen anderen Drucker auswählen.

Bis zum nativen Abschluss serialisieren

Im tatsächlichen Anwendungscode kamen sowohl kurze Vorabsuchen als auch längere, vom Benutzer angeforderte Suchvorgänge vor. Daher bleibt die Dauer eine explizite native Suchoption. Feste JavaScript-Timer werden nicht verwendet, um auf den SDK-Abschluss zu schließen. Mehrere Ports können durchsucht werden, indem ein Hilfsfunktionsaufruf nach dem anderen abgewartet wird. Es werden weder ein automatischer Suchplan noch eine Ableitung der Verbindungsart hinzugefügt.

Anwendungsrichtlinien

Auswahldialoge, Speicherimplementierung, Listen ausgeblendeter Geräte, Analysen, Bilderzeugung, Schriften, Etikettenlayouts und benutzerseitige Meldungen gehören in die Anwendung. Änderungen am nativen SDK und automatische Druckwiederholungen sind nicht Teil dieser Hilfsfunktionen. Vorhandene native Fehler und Verfügbarkeitsergebnisse bleiben erhalten, statt neu eingestuft zu werden.

Freigabe der Ansicht vom nativen Abschluss trennen

BrotherPrinterSession bildet die zustandsbehaftete Grenze einer Druckansicht. Sie teilt dieselbe native Verbindungswarteschlange mit den zustandslosen Hilfsfunktionen. Dadurch kann eine neue Ansicht keine noch laufende Suche der vorherigen Ansicht überlagern. Die Freigabe beansprucht nicht, einen nativen Vorgang abzubrechen: Eine aktive Suche wird abgeschlossen und ihr Listener entfernt; ein bereits gestarteter Druck läuft weiter. dispose() wartet auf das Entfernen der Druck-Listener, nicht auf den Abschluss der Suche oder des Drucks. Warten Sie separat auf das Promise von printImage(), wenn der Aufrufer auf den Druckabschluss warten muss. Die Anwendung benötigt keine eigene Suchwarteschlange, Listener-Liste oder Abbruchgenerierungszähler.

Von der Anwendung bereitgestellter Speicher

Der optionale Sitzungsspeicher verwaltet Verbindungsschlüssel und JSON-Serialisierung über die Callbacks get, set und remove. Anwendungen stellen den Speicher bereit; für die Druckervorbereitung und das Merken des ausgewählten Ziels ist kein separater Persistenzcode in der App nötig.

Anwendungs- und Codebeispiele finden Sie unter JavaScript-Druckerhilfen.

Was die Tests belegen

Die Tests prüfen diese Verbindungsabläufe mit dem gebauten Paket und dem Standard-Testrunner von Node. Sie belegen weder die Kompatibilität physischer Drucker noch die Modellidentität anhand einer Verfügbarkeitsprüfung.