You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Joe Bowser (JIRA)" <ji...@apache.org> on 2013/02/20 00:41:12 UTC

[jira] [Commented] (CB-2494) Some wonky FileWriting business going on in Android

    [ https://issues.apache.org/jira/browse/CB-2494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581761#comment-13581761 ] 

Joe Bowser commented on CB-2494:
--------------------------------

This writes to /mnt/shell/emulated/0, which is different than what appears when you mount the device.  Do we have to do some weird syncing when writing? 
                
> Some wonky FileWriting business going on in Android
> ---------------------------------------------------
>
>                 Key: CB-2494
>                 URL: https://issues.apache.org/jira/browse/CB-2494
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.5.0
>         Environment: 2.5.0rc1
> On a Galaxy Nexus running 4.2.2
>            Reporter: Filip Maj
>            Assignee: Joe Bowser
>
> I've added some code to write out the LICENSE file from the cordova-mobile-spec project to the PERSISTENT + TEMPORARY FileSystem locations, with the intent of reading them via the File API and comparing performance vs a similar action using XHR.
> The following code reports to work well, but I am having trouble locating the file on Android File Transfer or ADB shell. Not sure if it works or not? Heh.
> The code below should work, just make sure the initial XHR relative URL points to the license file in your case properly.
> {code}
>         // Write the LICENSE file out to PERSISTENT + TEMPORARY locations.
>         var xhr = new XMLHttpRequest();
>         xhr.open("GET", "../LICENSE", true);
>         xhr.onreadystatechange = function() {
>             if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status === 0)) {
>                 var APL = xhr.responseText;
>                 var approx_size = 12000; // 11-12kb
>                 window.requestFileSystem(LocalFileSystem.PERSISTENT, approx_size, function(persistent_fs) {
>                     persistent_fs.root.getFile("LICENSE", {create:true, exclusive:false}, function(entry) {
>                         console.log(JSON.stringify(entry));
>                         entry.createWriter(function(writer) {
>                             writer.onwriteend = function(evt) {
>                                 window.requestFileSystem(LocalFileSystem.TEMPORARY, approx_size, function(temp_fs) {
>                                     temp_fs.root.getFile("LICENSE", {create:true, exclusive:false}, function(t_entry) {
>                                         console.log(JSON.stringify(t_entry));
>                                         t_entry.createWriter(function(t_writer) {
>                                             t_writer.onwriteend = function(evt) {
>                                                 alert('done!');
>                                             };
>                                             t_writer.write(APL);
>                                         }, function(e) {
>                                             alert('Error creating LICENSE FileWriter');
>                                         });
>                                     }, function(e) {
>                                         alert('Error getting LICENSE file entry');
>                                     });
>                                 }, function(e) {
>                                     alert('Error retrieving persistent FS');
>                                 });
>                             };
>                             writer.write(APL);
>                         }, function(e) {
>                             alert('Error creating LICENSE FileWriter');
>                         });
>                     }, function(e) {
>                         alert('Error getting LICENSE file entry');
>                     });
>                 }, function(e) {
>                     alert('Error retrieving persistent FS');
>                 });
>             }
>         };
>         xhr.send(null);
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira