Leonel Gayard created CB-9810: --------------------------------- Summary: Mismatch between results of resolveLocalFileSystemURL and FileReader, throws error. Key: CB-9810 URL: https://issues.apache.org/jira/browse/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: [resolveLocalFileSystemURL|http://www.w3.org/TR/2011/WD-file-system-api-20110419/#widl-LocalFileSystem-resolveLocalFileSystemURL] and [FileReader|http://www.w3.org/TR/FileAPI/#APIASynch]. h2. Possible causes ? It seems the fileEntry object is created inside the Java code, as a JSONObject (method [Filesystem#makeEntryForURL|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/src/android/Filesystem.java#L61]; therefore it does not implement the Javascript interfaces File or Blob. h2. Possible solution ? Looking at the source of [FileReader.js|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/www/FileReader.js#L130], 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|https://github.com/apache/cordova-plugin-file/blob/r3.0.0/www/FileReader.js#L88] 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 (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org