Пытается получить доступ к локальному файлу в приложении Meteor, но не может запустить document.addEventListener («deviceready», onDeviceReady, false); - PullRequest
0 голосов
/ 13 ноября 2018

Попытка получить доступ к файловой системе в базовом приложении Meteor с помощью плагина Cordova.

Выполнить настройку следующим образом:

Команда создания проекта: создание метеора file2

Добавлен плагин Cordova, команда: meteor add cordova: cordova-plugin-file@6.0.1

Однако document.addEventListener ("deviceready", onDeviceReady, false);не запускается.

Консоль Javascript отображает: Выдача устройства уже из Meteor.startup

Вот мой код в main.js:

function onDeviceReady() {
    // Now safe to use device APIs
    console.log('deviceready completed');
    getPFile();
}

Meteor.startup(function() {
    console.log('Issuing deviceready from Meteor.startup');
    document.addEventListener("deviceready", onDeviceReady, false);
});

function getPFile() {

   window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {

       console.log('file system open: ' + fs.name);
       fs.root.getFile("newPersistentFile.txt", { create: true, exclusive: false }, function (fileEntry) {

           console.log("fileEntry is file?" + fileEntry.isFile.toString());
           writeFile(fileEntry, null);

       }, onErrorCreateFile);

   }, onErrorLoadFs);
}

Я также попытался вставить:

<script type="text/javascript" charset="utf-8" src="cordova.js">
</script>

в main.html, но консоль JavaScript отображает ошибку

SyntaxError: Unexpected token '<'

в Cordova.js

Кто-нибудь может предложить решение?

1 Ответ

0 голосов
/ 15 ноября 2018

Я попытался изменить оператор addEventListener, добавив скобки после onDeviceReady, который теперь вызывает функцию onDeviceReady, а не просто ссылается на функцию, как показано ниже:

document.addEventListener("deviceready", onDeviceReady(), false);

Однако я понял, что это вызывает функцию до того, как событие deviceready будет выполнено. Итак, я все еще пытаюсь выяснить, почему устройство не готово к работе.

...