Comments (9)
I found a solution / workaround.
I'm now converting content://
URLs to file://
with the following plugin:
https://ionicframework.com/docs/native/file-path
from capacitor-plugins.
can you provide a sample app?
from capacitor-plugins.
@jcesarmobile I made further tests. Crash only occurs with paths starting content://
. I got those paths from an intent (https://github.com/darryncampbell/darryncampbell-cordova-plugin-intent#intentshimonintent)
Here is a sample app :
https://github.com/ThomasKientz/capacitor-fs-issue-repro
from capacitor-plugins.
Yeah, content urls are only supported by readFile at the moment because they are not regular filesystem url, they belong to other app and you can't do Filesystem tasks on another app file, other than reading it if it was shared, and maybe stat could be implemented with a lot of content resolver code.
But should definitely not crash.
from capacitor-plugins.
I have created a plugin to read a file's name and size from a content uri : https://github.com/ThomasKientz/capacitor-plugin-file-infos
Would be nice to implement it inside FS plugin imo !
from capacitor-plugins.
Same issue with the copyFile
method. Works perfectly on iOS but not on Android....
from capacitor-plugins.
This issue is about content urls, that's an android thing, so can't work on iOS.
If you mean copyFile doesn't work on Android, report a new issue and provide more information.
from capacitor-plugins.
What I mean is, that Filesystem.copy()
doesn't work with content://
urls too. This issue doesn't only effect the Filesystem.stat()
method.
My iOS comment is about my expectation, that I can use the same Ionic-App-code for android and iOS. That means passing a Filesystem URI (which I got by some plugin) to any of the FileSystem plugin methods and the Filesystem plugin just does it's magic as it is supposed too. But as often, I have to provide some extra code for Android.... As far as I can tell, in order to copy a file from a content://
URI I'd have to read the file as base64 and then write it to the data
-directory for example. That is tremendous overhead which I'd feel very uncomfortable with. Is there any other way?
from capacitor-plugins.
I think important information like that, should be displayed way more prominent in the docs. The current hint is not sufficiently clear at all.
Additionally, the Filesystem API supports using full file:// paths, or reading content:// files on Android. Simply leave out the directory param to use a full file path.
Source: https://capacitorjs.com/docs/apis/filesystem#understanding-directories-and-files
from capacitor-plugins.
Related Issues (20)
- Please provide marker rotation in google maps plugin HOT 2
- [splash-screen] Make docs usable for iOS app HOT 2
- Cannot select a printer from the Share dialogue box HOT 1
- bug(@capacitor/share): FATAL EXCEPTION java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tvoydnevnik/com.tvoydnevnik.MainActivity}: java.lang.SecurityException: com.tvoydnevnik: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts HOT 2
- Add Capacitor Webview HOT 2
- Add map events to be handled at client side HOT 2
- Complience with Apples Required Reason API HOT 18
- google.maps.Marker is deprecated HOT 1
- [Geolocation / Android] The GPS position is only updated every 5 seconds when using "watchPosition" function on Android HOT 1
- [Bug]: @capacitor/camera - Console (F12) error (undefined) clicking on the camera icon when still loading the camera or not alowing the permission yet. HOT 3
- [Feature] Deep linking for Chromebook Android (App appUrlOpen)
- @capacitor/share not work in android 14, capacitor 6 HOT 4
- [Bug]: @capacitor/camera - After taking a photo (web), a certain border around the photo is cut away. HOT 4
- [Bug]: @capacitor/camera - After turning the device from landscape to portrait, the wrong modes are used when taking a photo. HOT 3
- feat(@capacitor/device) Request to update device plugin to remove privacy-impacting APIs HOT 1
- @capacitor/browser add a new BROWSER_CLOSED event HOT 1
- [@capacitor/filesystem] Successful Filesystem.requestPermissions prompt never resolves due to missing case in callback HOT 4
- [Feature]: native camera max weight settings
- @capacitor/share not working with capacitor v6 HOT 2
- Filesystem.copy not working con content:/ android
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from capacitor-plugins.