window.openDatabase не является ошибкой функции в приложении Moodle 3.8 Ionic

Я пытаюсь настроить мобильное приложение Moodle 3.8, я хочу, чтобы оно имело логотипы и заставку, персонализированные для моего бренда. Я клонировал репозиторий из https://github.com/moodlehq/moodlemobile2.git на свой компьютер с Ubuntu 18.04 и запустил npm install setup в корневом каталоге проекта moodleapp. Я бегу Ionic CLI 5.2.5. После успешного выполнения npm install setup я запускаю ionic serve --lab или даже с флагом --lab, чтобы увидеть свое приложение в браузере Firefox. Команда запускает приложение без ошибок и инициализирует приложение в браузере, но здесь возникает проблема: приложение пустое и ничего не отображается, кроме темного экрана.

Я направляюсь, чтобы проверить элемент и обнаружил, что есть ошибка, которая говорит "window.openDatabase is not a function". Мобильное приложение Moodle 3.8 имеет возможности автономного хранения данных с использованием базы данных SQLite, которую я подозреваю как источник ошибки, поэтому я установил ionic cordova plugin add cordova-sqlite-storage и npm install @ionic-native/sqlite в проект, но ничего не изменилось. Я исследовал эту ошибку в течение нескольких дней, но не нашел подходящего источника проблемы и решения. Полная ошибка:

Unhandled Promise rejection: window.openDatabase is not a function ; Zone: <root> ; Task: Promise.then ; Value: TypeError: "window.openDatabase is not a function"
    init sqlitedb.ts:152
    SQLiteDB sqlitedb.ts:144
    SQLiteDBMock sqlitedb.ts:31
    getDB db.ts:45
    CoreAppProvider app.ts:78
    Angular 8
    invoke polyfills.js:3
    onInvoke Angular
    invoke polyfills.js:3
    run polyfills.js:3
    Angular 3
    invoke polyfills.js:3
    run polyfills.js:3
    f polyfills.js:3
    invokeTask polyfills.js:3
    runTask polyfills.js:3
    o polyfills.js:3
 SQLiteDBMock.prototype.init@http://localhost:8100/build/main.js:135760:26
SQLiteDB@http://localhost:8100/build/main.js:104930:14
SQLiteDBMock@http://localhost:8100/build/main.js:135647:28
CoreDbProvider.prototype.getDB@http://localhost:8100/build/main.js:83056:42
CoreAppProvider@http://localhost:8100/build/main.js:4415:30
_createClass@http://localhost:8100/build/vendor.js:11317:20
_createProviderInstance$1@http://localhost:8100/build/vendor.js:11281:26
initNgModule@http://localhost:8100/build/vendor.js:11234:28
NgModuleRef_@http://localhost:8100/build/vendor.js:12489:21
createNgModuleRef@http://localhost:8100/build/vendor.js:12478:12
debugCreateNgModuleRef@http://localhost:8100/build/vendor.js:14812:12
NgModuleFactory_.prototype.create@http://localhost:8100/build/vendor.js:15950:25
PlatformRef.prototype.bootstrapModuleFactory/<@http://localhost:8100/build/vendor.js:5876:78
F</l</t.prototype.invoke@http://localhost:8100/build/polyfills.js:3:14976
onInvoke@http://localhost:8100/build/vendor.js:5134:33
F</l</t.prototype.invoke@http://localhost:8100/build/polyfills.js:3:14916
F</c</r.prototype.run@http://localhost:8100/build/polyfills.js:3:10143
NgZone.prototype.run@http://localhost:8100/build/vendor.js:4951:69
PlatformRef.prototype.bootstrapModuleFactory@http://localhost:8100/build/vendor.js:5874:23
PlatformRef.prototype.bootstrapModule/<@http://localhost:8100/build/vendor.js:5953:59
F</l</t.prototype.invoke@http://localhost:8100/build/polyfills.js:3:14976
F</c</r.prototype.run@http://localhost:8100/build/polyfills.js:3:10143
f/<@http://localhost:8100/build/polyfills.js:3:20242
F</l</t.prototype.invokeTask@http://localhost:8100/build/polyfills.js:3:15660
F</c</r.prototype.runTask@http://localhost:8100/build/polyfills.js:3:10834
o@http://localhost:8100/build/polyfills.js:3:7894
polyfills.js:3:20723
    onUnhandledError http://localhost:8100/build/polyfills.js:3
    r http://localhost:8100/build/polyfills.js:3
    microtaskDrainDone http://localhost:8100/build/polyfills.js:3
    microtaskDrainDone http://localhost:8100/build/polyfills.js:3
    o http://localhost:8100/build/polyfills.js:3

​

Я застрял на этом, любая помощь приветствуется.


person giftmarimo    schedule 21.02.2020    source источник


Ответы (1)


Не уверен, что вы все еще застряли на этом, но на всякий случай, если у других есть такая же проблема: это поведение, похоже, связано с использованием firefox. Использование chromium-browser не вызывает это исключение.

Тем не менее, команда разработчиков мобильных устройств moodle рекомендует использовать хром для настольной разработки. они, вероятно, должны сказать, что это обязательно.

person SeriousFun01    schedule 23.12.2020