Hi, Matt, Here is the feature link, https://crosswalk-project.org/jira/browse/XWALK-2455 You can get a file://<file:///\\> path by getRealPath(). For example, file:///sdcard/1.png<file:///\\sdcard\1.png>. Access this file by <img src=”file:///sdcard/1.png<file:///\\sdcard\1.png>” />
From: Matt Bargar [mailto:[email protected]] Sent: Wednesday, September 3, 2014 3:30 AM To: Gao, Shawn Cc: Smith, Elliot; [email protected] Subject: Re: [Crosswalk-help] Accessing file system Hi Shawn- Thanks for your continued help. Can you give an example of how I'd write that out in practice. For example, none of these paths (pasted below) have led to an image that I have manually placed in /sdcard/Android/data/com.cloudkid.test_app/cache/ using adb shell. I'm using Crosswalk Canary 9.37.198.0 but I had the same results with 8.37.189.2. <img src="file:///CACHEDIR/logo.png<file:///\\CACHEDIR\logo.png>" /> <img src="file:///EXTERNAL_CACHEDIR/logo.png<file:///\\EXTERNAL_CACHEDIR\logo.png>" /> I've tried many variants -- <img src="file:///CACHE_DIR/com.cloudkid.test_app/data/data/logo.png<file:///\\CACHE_DIR\com.cloudkid.test_app\data\data\logo.png>" /> etc. But I always get a FILE_NOT_FOUND error in the chrome console when remote debugging. This is with a super-simple test app, just the boilerplate code from the Getting Started example, and essentially the manifest from https://www.crosswalk-project.org/#documentation/manifest Thanks again! -Matt On Mon, Sep 1, 2014 at 5:52 AM, Gao, Shawn <[email protected]<mailto:[email protected]>> wrote: Hi, Matt, I am trying to expose the real path of CACHEDIR and EXTERNAL_CACHEDIR. Developer can read files under these folder by “ file:// “protocol. Shawn From: Smith, Elliot [mailto:[email protected]<mailto:[email protected]>] Sent: Tuesday, August 19, 2014 5:10 PM To: Matt Bargar Cc: Gao, Shawn; [email protected]<mailto:[email protected]> Subject: Re: [Crosswalk-help] Accessing file system Hello Matt. On 18 August 2014 13:31, Matt Bargar <[email protected]<mailto:[email protected]>> wrote: Hi Shawn! Thank you so much for your continued help. I think I'm just not expressing myself right. Imagine a scenario where we distribute an offline web page -- html files with associated assets -- in an expansion file, which is then placed in external_cachedir. Is there a way we can then view that web page from within Crosswalk? Your "Not allowed to load local resource:" log messages may indicate that you need to set the content_security_policy field in the manifest for the application: https://crosswalk-project.org/#documentation/manifest/content_security_policy This will allow you to load resources into the app which are outside the sandbox. (NB I've not tried to load anything other than mp3s into an <audio> element, so I don't know if there are other constraints which you may run into.) Note that this field is renamed "csp" in Crosswalk 8, but still takes values in the same format. Elliot Or, failing that, is there a way we can use the File API to copy the assets to some place (/data/data/[package name]/files/ ?) we can then have crosswalk view somehow? On Sun, Aug 17, 2014 at 9:59 PM, Gao, Shawn <[email protected]<mailto:[email protected]>> wrote: Hi, My understanding of your requirement is you want to list out all files and directories under EXTERNAL_CACHEDIR in a html page, something like a file manager, right? If my understanding correctly, Yes, you can do it. But native file system API doesn’t provide UI component. The UI component should implement by developers. Sincerely, Shawn From: Matt Bargar [mailto:[email protected]<mailto:[email protected]>] Sent: Friday, August 15, 2014 8:39 PM To: Gao, Shawn Cc: Min, Hongbo; [email protected]<mailto:[email protected]>; Huo, Halton Subject: Re: [Crosswalk-help] Accessing file system Hi- I'm using the native file system API (xwalk.experimental) -- I do have success reading/writing files and folders using this API. The use case I'm trying to make work is having an html file with arbitrary content (javascript, css, images etc) in the "EXTERNAL_CACHEDIR", and having some way to point to all of this content, so, from my index.html file, I could (for example) open an iframe to this html file and see its contents "automatically". Does that make sense? Is there any way to achieve that? Thanks! -Matt On Thu, Aug 14, 2014 at 9:54 PM, Gao, Shawn <[email protected]<mailto:[email protected]>> wrote: Hi, Matt, Which file API are you tried, native file system API or w3c file API? Crosswalk has native file system API besides w3c file API, which can read/write/mange file out of sandbox. Here demos the usage of this API, https://github.com/crosswalk-project/crosswalk/blob/master/test/android/data/native_file_system.html. Crosswalk restricts the ability of native file system API for security reason. Only following path is opened for Android app developer, • ALARMS • DCIM • DOWNLOADS • MOVIES • MUSIC • NOTIFICATIONS • PICTURES • PODCASTS • RINGTONES • CACHEDIR # Cache directory of your app • EXTERNAL_CACHEDIR # External cache directory of your app Thanks, Shawn From: Min, Hongbo Sent: Friday, August 15, 2014 9:27 AM To: Matt Bargar; [email protected]<mailto:[email protected]> Cc: Huo, Halton; Gao, Shawn Subject: RE: [Crosswalk-help] Accessing file system + Halto and Shawn ________________________________ From: Crosswalk-help [[email protected]<mailto:[email protected]>] on behalf of Matt Bargar [[email protected]<mailto:[email protected]>] Sent: Friday, August 15, 2014 3:22 AM To: [email protected]<mailto:[email protected]> Subject: [Crosswalk-help] Accessing file system Hi- We're working on a Crosswalk app, and have a question. We are planning on writing a Crosswalk extension that deals with expansion files. At a high level, this theoretical extension would have two main tasks: 1. checking to make sure any necessary OBB files were downloaded correctly, and, in our case, unzipping the OBB file somewhere 2. providing a path to where the files were unzipped. One of the tasks we know will need to be accomplished is reading files (html, css, images, audio) from the file system, after the expansion file has been unzipped. We have investigated the File API, and it's great for what it does! We are able to successfully read in images and text and deal with them from the javascript side (adding them to the DOM, etc.) However, our ideal use case would be to be able to point Crosswalk to the unzipped expansion file (presumably mounted on /sdcard/ somewhere, we could get the path from the Java side) and have it read html files natively. i.e., we would have a /www/ folder in our expansion file, and we could direct Crosswalk to display files inside that /www/ folder (in an iframe, for example). What would be the best approach to this? We have tried various forms of file:///<file:///\\> URLs (we always get "Not allowed to load local resource:" errors in the Chrome logs) and app:/// URLs (we get a 403 Forbidden if we try to reach outside our app's sandbox). We are currently using Canary (9.37.192.0). Thanks for any help you can give us! -Matt Bargar _______________________________________________ Crosswalk-help mailing list [email protected]<mailto:[email protected]> https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help -- Elliot Smith Senior Software Engineer Intel Open Source Technology Centre
_______________________________________________ Crosswalk-help mailing list [email protected] https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help
