Added browser platform #52
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's a PR that adds the browser platform without editing any of the pre-existing files, except for README.md in which I've added some nice badges like version numbers and code size. It has been tested on the browser v6.0.0 platform.
File Selection Process Overview
The file selection process in the
cordova-plugin-chooserfollows these steps:1. Calling
getFile()The process begins when the
getFile()function is called. This function is provided by theChoosermodule, and it is responsible for initiating the file selection process.2. Creating a File Input Element
Inside the
getFileInternalBrowserfunction:<input>element of typefileis created.acceptparameter is provided, it sets the accepted file types for the input.3. Adding Event Listener
An event listener is added to the input element:
changeevent, which triggers when a user selects a file.4. Handling File Selection
When a file is selected:
event.target.filesarray.5. Creating a Blob URL
If a file is selected:
URL.createObjectURL(file). This URL points to the file's location in memory.6. Checking for Data Inclusion
The function checks if data inclusion is requested (
includeData):includeDataisfalse, the function constructs a result object containing metadata (e.g.,mediaType,name, anduri) and sends it as a JSON string via the success callback.7. Reading the File as an ArrayBuffer
If
includeDataistrue:FileReaderobject is created to read the file as anArrayBuffer.onloadevent of theFileReaderis triggered once the file is read successfully.8. Preparing the Result Object
In the
onloadhandler:data: TheArrayBuffercontaining the file data.mediaType: The MIME type of the file.name: The name of the file.uri: The Blob URL.9. Sending the Result
Finally:
Summary
This flow ensures that the plugin efficiently handles file selection, allowing developers to obtain both metadata and file data as needed.