尝试在Meteor应用中访问本地文件,但无法触发document.addEventListener(“ deviceready”,onDeviceReady,false);

时间:2018-11-13 18:56:44

标签: cordova meteor

尝试使用Cordova插件在基本Meteor应用中访问文件系统。

设置如下:

创建项目命令:流星创建文件2

添加了Cordova插件,命令:流星添加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 :(得分:0)

我尝试通过在onDeviceReady之后添加括号来更改addEventListener语句,该设备现在调用函数onDeviceReady函数,而不仅仅是如下所述:

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

但是,我意识到这会在deviceready事件得到满足之前调用此函数。因此,我仍在尝试找出未准备好设备的原因。