Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cordova FileReader在特定情况下不读取文件_Javascript_Android_Cordova_Filereader - Fatal编程技术网

Javascript Cordova FileReader在特定情况下不读取文件

Javascript Cordova FileReader在特定情况下不读取文件,javascript,android,cordova,filereader,Javascript,Android,Cordova,Filereader,我正在科尔多瓦建立一个Android应用程序,它使用谷歌MyMaps的数据。所以,我试图直接从google下载kml文件进行解析。如果设备上不存在该文件,下载工作正常,但一旦该文件存在,文件阅读器就会拒绝工作 这是我的密码: let transfer = new FileTransfer() let uri = encodeURI(`https://www.google.com/maps/d/kml?mid=${mapId}&forcekml=1`) let fileUrl = 'cdv

我正在科尔多瓦建立一个Android应用程序,它使用谷歌MyMaps的数据。所以,我试图直接从google下载kml文件进行解析。如果设备上不存在该文件,下载工作正常,但一旦该文件存在,文件阅读器就会拒绝工作

这是我的密码:

let transfer = new FileTransfer()
let uri = encodeURI(`https://www.google.com/maps/d/kml?mid=${mapId}&forcekml=1`)
let fileUrl = 'cdvfile://localhost/persistent/mapdata.kml'
transfer.download(uri, fileUrl, (entry) => {
    let url = entry.toURL()
    let path = entry.fullPath
    console.log('cart: complete!, '+url+", "+path)
    entry.file((file) => {
        console.log('cart: reading map file')
        let reader = new FileReader()
        reader.onload = (evt) => {
            console.log("cart: finished reading file")
            setTimeout(() => parseMapData(evt.target.result), 750)
        }
        reader.onloadend = reader.onload // failsafe
        reader.readAsText(file)
    }, (err) => {
        alert('file read err')
    })
}, (error) => {
    alert('error!')
}, true, {
    headers: {
        'Access-Control-Allow-Origin': '*'
    }
})
如果文件存在,似乎不会调用filereader的onload和onloadend。因此,我必须在再次下载之前删除该文件,无论它是永久存储还是临时存储。我希望能够缓存多个应用程序加载的数据,并重新读取,而不是重新下载

如果我只是在没有下载的情况下读取现有文件,有时我可以加载它,但它似乎不一致

这到底是怎么回事


更新:即使我删除文件并重新下载,它也基本不起作用。无论出于什么原因,它偶尔也会起作用。所以一般来说,我在Android上不使用FileReader
readAsText
未被调用或
onload
/
onloadend
未被调用(我已尝试单独使用每一个)。对此我能做些什么吗?

“文件阅读器拒绝工作”你说的“拒绝工作”是什么意思?好吧,似乎没有调用onload和onloadend,因为我没有得到我在那里记录的内容,也没有调用parseMapData。但是,下载本身工作正常,或者至少调用其成功回调。请尝试仅使用
load
loadend
或尝试单独使用每种方法。我得到了同样的结果。“FileReader拒绝工作”你说的“拒绝工作”是什么意思?嗯,似乎没有调用onload和onloadend,因为我没有得到我在那里记录的内容,也没有调用parseMapData。但是,下载本身工作正常,或者至少调用其成功回调。请尝试仅使用
load
loadend
或尝试单独使用每种方法。我得到了同样的结果。