Zuerst müssen Sie verstehen, erhalten begonnen, dass die Arbeiter einen neuen Thread oder Prozess ist, und das beinhaltet nicht das Fenster und Dokument Objekte.
Cordova erstellt eine Schnittstelle zwischen der Webansicht und der nativen API. Wenn Sie einen Worker ausführen, haben Sie keinen Zugriff auf diese API-Schnittstelle, daher können Sie keine Plugins oder den Cordova-Core verwenden.
Ich versuchte, das cordova.js Skript in einem Arbeiter zu importieren:
loadScript('../cordova.js');
Aber es wirft einen Fehler, wenn sie nicht das Fenster Objekt findet. Schließlich emuliert die Objekte:
self.window = this;
self.window.document = this;
loadScript('../cordova.js');
Die Cordovas Skript wirft „Reference: promp ist nicht definiert“.
Auf der anderen Seite müssen Sie verstehen, dass die Kommunikation zwischen dem WebView und dem systemeigenen Code asynchron sind. Wenn Sie beispielsweise eine SQLite-Abfrage senden, führt Ihr JavaScript-Code fortlaufende Läufe aus. Wenn die Abfrage aufgelöst wird, sendet die API ein Ereignis an das WebView, und Sie führen Ihren Rückruf aus.
Ich benutze Arbeiter zum Beispiel zum Verschlüsseln von Daten, weil dieser Prozess zu hart ist und zu Blockierungen führt. Aber wenn Sie Cordova Plugins verwenden müssen, haben Sie dieses Problem nicht.
Es gibt eine Erklärung to understand this.
Für SQLite empfehle ich Ihnen Cordova-SQLitePlugin zu verwenden.
Wenn Sie Ihren eigenen höhen Prozess benötigen, können Sie lernen, wie Plugins zu machen: https://cordova.apache.org/docs/en/4.0.0/guide_hybrid_plugins_index.md.html
In der Zwischenzeit können Sie Arbeiter verwenden und senden und empfangen Daten, aber nicht mit Ressourcen Referenzen. Beachten Sie, dass dies mit apis (wie SQLite) asynchron erfolgt und Sie keinen weiteren Prozess zur Ausführung öffnen müssen. Sie können das Ergebnis einfach an einen Mitarbeiter senden und von dort aus bearbeiten.
Vielen Dank für eine gut durchdachte Antwort mit Referenzen. Ihr Englisch ist nicht so schlecht ... vor allem, wenn wir komplexe Begriffe für ein bestimmtes Thema verwenden. Das Kopfgeld gehört dir! – Neaox