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

Andrew Grieve commented on CB-285:
----------------------------------

Yes. Definitely want to allow users to chose make the decision of where their 
files go. Android has no iCloud equivalent, but instead has a shared 
file-system for things like music & photos.

So, here's another proposal: Instead of adding non-standard constants to 
requestFileSystem(), we add a new (non-standard) API:

LocalFileSystem.getAppDirectory(callback) 
// gets a (read-only) DirectoryEntry for the www directory.

LocalFileSystem.getDirectoryForPurpose({
  sandboxed: true || false,
  persistence: 'temporary' || 'cache' || 'device_persistent' || 'persistent',
  category: 'data' || 'documents'
}, success);

sandboxed: will be ignored for iOS. For Android it will toggle between external 
an internal storage.
- Defaults to true.
- If non-sandboxed is unavailable (iOS), fall-back to true.

persistence: 
- on Android, 'temporary' == 'cache', but on iOS they are different.
- on Android, 'device_persistent' == 'persistent', but on iOS one has iCloud 
enabled and the other does not.

category:
- Defaults to 'data'
- persistence == 'temporary' or 'cache' ==> this value is ignored.
- Android && sandboxed == true ==> files/ directory
- 'data' && iOS && persistence == 'persistent' ==> <Application_Home>/Library
- 'data' && iOS && persistence == 'device_persistent' ==> 
<Application_Home>/Library/NoCloud (and we set the extended attr on this 
directory to make it unsynced.
- 'data' && Android ==> files/ subdirectory of app storage (based on sandboxed 
value)
- 'documents' && iOS && persistence == 'persistent' ==> 
<Application_Home>/Documents
- 'documents' && iOS && persistence == 'device_persistent' ==> 
<Application_Home>/Documents/NoCloud
- 'documents' && Android ==> /sdcard


                
> Add property returning root path of PhoneGap files
> --------------------------------------------------
>
>                 Key: CB-285
>                 URL: https://issues.apache.org/jira/browse/CB-285
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: CordovaJS
>    Affects Versions: 1.4.0
>         Environment: Both PhoneGap SDK and PhoneGap Build
>            Reporter: Ashley Gullen
>            Assignee: Andrew Grieve
>              Labels: features
>
> There needs to be a property in PhoneGap that returns the root path to the 
> general files added to the PhoneGap project (i.e. the directory index.html is 
> in).  For example, if I add 'music.mp3' to my project, in Android it will be 
> located in:
> /android_asset/www/music.mp3
> On iOS after being built with PhoneGap Build it will be located in some path 
> like this:
> /var/mobile/Applications/<app_ID>/<name>.app/www/music.mp3
> However, there does not appear to be a programmatic way to determine both 
> <app_ID> and <name>.app.
> This has two side effects:
> 1. Paths to audio for Media must be hard-coded separately depending on the 
> platform, which is inconvenient.
> 2. Paths to audio for Media cannot be known if developing a framework that 
> uses PhoneGap.  Since a framework does not know the App ID or name in 
> advance, it's impossible for the framework to determine the correct path.
> This is actively blocking audio from working on iOS in PhoneGap projects 
> exported by Construct 2 (www.scirra.com), a HTML5 game creator.  Also, it 
> seems like kind of an important function to make available anyway, since 
> hard-coding paths for each platform is a pain.
> This PhoneGap Support thread led to this issue: 
> http://phonegap.tenderapp.com/discussions/questions/208-android_asset-equivalent-for-ios

--
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

Reply via email to