Как сделать так, чтобы `NativeStorage` определялся при запуске из скрипта, выполняемого после загрузки страницы? - PullRequest
0 голосов
/ 12 ноября 2018

Со следующей небольшой модификацией демонстрационного примера cordova-plugin-nativestorage :

Патч

index.html

32c32
<     <!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> -->
---
>     <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
40c40
< <body onload="showData()">
---
> <body>
Патч

index.js

78,89c77
< app.initialize();
< 
< function showData() {
<     NativeStorage.getString("dummy_ref_obj",
<                             function (result) {
<                                 alert("After the page has been loaded, the current stored value was: " + result);
<                             },
<                             function (e) {
<                                 alert("For the moment, no data saved");
<                             });
<     NativeStorage.clear();
< }
---
> app.initialize();

NativeStorage вызывается из скрипта, выполняемого после загрузки страницы (благодаря событию onload), но созданного и запущенного для:

  • браузер платформа, все в порядке:
    1. при первой загрузке → предупреждение «На данный момент данные не сохранены»,
    2. сохранить данные (скажем, «Foo») → предупреждение «Сохраненные данные: Foo»,
    3. перезагрузить страницу → «После загрузки страницы текущее сохраненное значение было предупреждением: Foo»,
  • Android платформа, это не хорошо:
    1. при 1-й загрузке → нет предупреждения и следующая ошибка:

      Uncaught ReferenceError: NativeStorage не определено при showData (index.js: 81) при загрузке (index.html: 40)

Мой вопрос: возможно ли сделать NativeStorage определенным при вызове из скрипта, выполняемого после загрузки страницы?

Может быть, моя проблема в том, что Я не жду, когда устройство будет готово, прежде чем звонить, я вызываю NativeStorage плагин , но в таком случае я не вижу, как продолжить (я совсем новичок в Кордове).

...