cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonel Gayard (JIRA)" <>
Subject [jira] [Created] (CB-9810) Mismatch between results of resolveLocalFileSystemURL and FileReader, throws error.
Date Thu, 15 Oct 2015 18:17:05 GMT
Leonel Gayard created CB-9810:

             Summary: Mismatch between results of resolveLocalFileSystemURL and FileReader,
throws error.
                 Key: CB-9810
             Project: Apache Cordova
          Issue Type: Bug
          Components: Plugin File
    Affects Versions: 3.0.0
         Environment: Android SDK 22
Tested on an LG Nexus, Android 5.0.1
            Reporter: Leonel Gayard

h2. The problem

When reading a file with {{resolveLocalFileSystemURL}} followed by {{FileReader.readAsText}},
 the latter fails, with the error message {{Uncaught TypeError: Failed to execute 'readAsText'
on 'FileReader': parameter 1 is not of type 'Blob'.}}

cordova-plugin-file provides these functions, which match the W3C APIs for File and File System:
and [FileReader|].

h2. Possible causes ?

It seems the fileEntry object is created inside the Java code, as a JSONObject (method [Filesystem#makeEntryForURL|];
therefore it does not implement the Javascript interfaces File or Blob.

h2. Possible solution ?

Looking at the source of [FileReader.js|],
it seems the FileReader implemented by the plugin delegates to the FileReader of the web view
(at least, that's what the name of the variable suggests, `realReader`.

Also, the function in file FileReader.js [seems to rely on the attribute localURL|]
of the file object, which is not part of the API.

I made a quick hack on my local installation, to remove the call to the "real" FileReader,
and use the one written in Java; this fixed the issue, and makes it possible to use FileReader.

Tested on Android SDK 22, on an LG Nexus, Android 5.0.1.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message