Ich habe eine web-basierte Android-App, die WebSQL zum Speichern verwendet. Aus irgendeinem Grund verursacht das Aufrufen von openDatabase
an einem bestimmten Punkt (als Reaktion auf einen Tastendruck) einen DOMException
mit der Nachricht "SECURITY_ERR: DOM Exception 18"
.SECURITY_ERR: DOM Ausnahme 18 auf openDatabase
Beachten Sie, dass ich PhoneGap nicht verwende.
Die Hauptfrage, die ich hier stelle, ist: Was sind die möglichen Ursachen für eine DOMException 18 auf openDatabase
?
Weitere Details: Diese Ausnahme tritt nur auf, wenn die Datenbank noch nicht existiert. Wenn es bereits existiert, funktioniert es wie erwartet. Die Funktion, die den Anruf openDatabase
macht, wird in einem anderen Teil der App verwendet und funktioniert gut.
Was ich bisher versucht haben:
- die Größe der Datenbank Reduzierung - sollte kein Problem sein, da sie von einem anderen Teil der App erstellt wird ist.
- Ich habe die Berechtigungen für externe Speicher überprüft - wieder sollte kein Problem sein.
- Ich habe irgendwo gelesen, dass das eingesteckte USB-Kabel dieses Problem verursachen könnte - nicht, was es in diesem Fall verursacht.
EDIT: Dies ist, was der Befehl wie folgt aussieht:
db = openDatabase('my_database', '1.0', 'My database description', 5*1024*1024, function() {});
ist das Problem gelöst ... Ich bin mit dem gleichen Problem konfrontiert ... – Aravin
Nie herausgefunden, was die Ursache war. Am Ende fand ich die WebSQL-Stabilität auf verschiedenen Android-Geräten/-Versionen für meine Bedürfnisse zu inkonsistent, so dass ich am Ende eine native Oberfläche schrieb, die sich als viel besser herausstellte. Obwohl ich auf diese Frage keine Antwort mehr brauche, wäre ich immer noch daran interessiert, sie zu hören, aus Neugier. – Goldsmith
ich löste dieses Problem..genanntermaßen offene Datenbank in der Gerät-bereit-Funktion .... – Aravin