[
https://issues.apache.org/jira/browse/CB-285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13571724#comment-13571724
]
Andrew Grieve commented on CB-285:
----------------------------------
Thanks for the feedback Becky!
Moving from Documents -> Library: My thought here was that it's more common to
use it for app data than for user-generated content. Users should be able to
understand what each file in their Documents directory is for. That's not a
distinction that the LocalFileSystem API makes.
Agree that a USER_DATA might make sense, but that doesn't map as well
x-platform, and so wanted to punt on it for the first go-around. If you (or
someone else) wants to propose something for it though, now's not a bad time to
discuss! :)
I suggest exposing <Application_Home> only to avoid exposing every
sub-directory of it as different constants. Maybe this would be better though?
I can also imagine third-party plugins wanting to be able to chose a
sub-directory to use for plugin-specific files that does not show up to the app
within their PERSISTENT / TEMPORARY spaces. e.g. /tmp/my-plugin or
/Library/my-plugin/. Exposing the root (<Application_Home> makes this possible.
For assets - it's not currently possible to create a FileEntry() to a file in
the www/ directory (unless you call the constructor directly with the full
path, which is not really a supported API). There can also be siblings of www/
on both iOS and Android. I figured it would be useful to expose these (through
our non-standard additions), but I can't actually think of a reason right now
why you'd want to. It would only make your life harder, no? Maybe instead of
APP_ASSETS, we should just have a CORDOVA_WWW constant? wdyt? The reason we
want to expose it via the FileSystem API even though it's read-only, is that it
makes it enumerable.
I *think* I agree with what you said about relative paths. They should be
treated as relative URLs, so should be relative to the html file you're
currently on.
For CB-571, I don't know that it's safe to assume Documents directory. It could
be the app is a shazam-like app and the sound-clip is really just temporary app
data. The best thing would be if the apps passed in absolute URLs for where
they want the file. According to what you (and I agree) suggest for handling
relative URLs, passing in just a filename should resolve to a file in the www/
directory, and be read-only. This would be my expected behaviour if I created
the Media object with the intention of calling .play() on it.
> 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