GithubHelp home page GithubHelp logo

capawesome-team / capacitor-plugins Goto Github PK

View Code? Open in Web Editor NEW
164.0 6.0 25.0 847 KB

⚡️ Community plugins for Capacitor. Supports Android, iOS and the Web.

Home Page: https://capawesome.io/plugins/

Ruby 3.41% Java 41.50% Objective-C 2.93% Swift 30.83% JavaScript 3.06% TypeScript 18.27%
android capacitor capacitor-android capacitor-community capacitor-ios capacitor-plugin hacktoberfest ios web

capacitor-plugins's People

Contributors

c-clasing avatar co-dax avatar eranshmil avatar github-actions[bot] avatar kainosnoema avatar khromov avatar robingenz avatar stephan-fischer avatar thomasjohansen avatar walweh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

capacitor-plugins's Issues

bug: File Picker Sending Duplicate Images when Selecting Downloaded Images from IOS

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

I have a few GoPro images that I downloaded on IOS. When I select the files from IOS Photos despite being different files the file-picker plugin sends me 2 duplicate images. Ive attached screenshots of the image / info below. When these are selected I get the following from the File Picker plugin.

Capacitor Logs:

⚡️  TO JS {"files":[{"name":"GPTempDownload.heic","size":1146838,"height":3286,"mimeType":"image\/heic","width":4288,"modifiedAt":1690988208860,"path":"file:\/\/\/var\/mobile\/Containers\/Data\/Application\/F13934F8-6B20-4F64-98CA-0F5E02FA221B\/Library\/Caches\/GPTe

Received in the JS Layer:

[
  {
    "name": "GPTempDownload.heic",
    "size": 1146838,
    "height": 3286,
    "mimeType": "image/heic",
    "width": 4288,
    "modifiedAt": 1690988208860,
    "path": "file:///var/mobile/Containers/Data/Application/F13934F8-6B20-4F64-98CA-0F5E02FA221B/Library/Caches/GPTempDownload.heic"
  },
  {
    "name": "GPTempDownload.heic",
    "size": 1146838,
    "height": 3286,
    "mimeType": "image/heic",
    "width": 4288,
    "modifiedAt": 1690988208860,
    "path": "file:///var/mobile/Containers/Data/Application/F13934F8-6B20-4F64-98CA-0F5E02FA221B/Library/Caches/GPTempDownload.heic"
  }
]

IMG_1845
IMG_1846

Expected behavior

FilePIcker should not send duplicate images given the the files and different. My guess is it has something to do with the name being the same GPTempDownload.heic which appears to be the given Icloud name and not the actual name of the file.

If needed I can provide the raw files.

Reproduction

https://github.com/capawesome-team/.capacitor-app

Steps to reproduce

Open FilePicker with GoPro Images or Images downloaded from Icloud on IOS.
Select the files
Observe that data is duplicated despite files being unique.

Other information

It's hard to provide a reproduction because it has more to do with the files being selected. Again if needed I can provide the files directly to a member of the team. I think uploading them here would change the metadata that IOS provides.

Edited:

After doing a bit more research it turns out the files all have the same name GPTempDownload.heic and the caption is the unique value per the screenshots above. It seems like having duplicate names is throwing the logic off.

Capacitor doctor

Latest Dependencies:

  @capacitor/cli: 5.2.2
  @capacitor/core: 5.2.2
  @capacitor/android: 5.2.2
  @capacitor/ios: 5.2.2

Installed Dependencies:

  @capacitor/cli: 5.0.5
  @capacitor/core: 5.2.2
  @capacitor/android: 5.2.2
  @capacitor/ios: 5.2.2

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug(file-picker): pickMedia dont work

Plugin version:
0.5.10

Platform(s):
IOS, Android

Current behavior:
What could be the problem when using pickMedia()? The gallery opens, but after selecting the files, it resets and opens the explorer (as with pickFiles()).

Expected behavior:
Selecting files from the gallery should not open explorer

Steps to reproduce:

Screen_Recording_20230324_135649_Files.mp4

Other information:
pickFiles() works as expected

bug: App closes unexpectly when device orientation changes

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

Error handling device orientation changes

FATAL EXCEPTION: CapacitorPlugins

                                                                                                android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
                                                                                                	at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:10750)
                                                                                                	at android.view.ViewRootImpl.doDie(ViewRootImpl.java:9329)
                                                                                                	at android.view.ViewRootImpl.die(ViewRootImpl.java:9314)
                                                                                                	at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:569)
                                                                                                	at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:510)
                                                                                                	at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:146)
                                                                                                	at android.app.Dialog.dismissDialog(Dialog.java:676)
                                                                                                	at android.app.Dialog.dismiss(Dialog.java:658)
                                                                                                	at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:192)
                                                                                                	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                	at android.os.Looper.loop(Looper.java:246)
                                                                                                	at android.os.HandlerThread.run(HandlerThread.java:67)

Expected behavior

Do not kill APP

Reproduction

Just change device orientation while plugin open

Steps to reproduce

  1. In Android
  2. Launch demo app
  3. Open plugin
  4. Change device orientation

Other information

I solved by running the dialog inside a new Runnable on the Activity's ui thread

public void presentDatePicker(
Date date,
@nullable Date minDate,
@nullable Date maxDate,
@nullable Locale locale,
String cancelButtonText,
String doneButtonText,
@nullable String theme,
final PresentResultCallback resultCallback,
@nullable AndroidDatePickerMode androidDatePickerMode,
@nullable AndroidTimePickerMode androidTimePickerMode
) {
if (locale != null) {
this.updateLocaleConfiguration(locale);
}

    Calendar calendar = this.createCalendarFromDate(date);

    plugin.getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {

            final DatePickerDialog dialog = new DatePickerDialog(
                plugin.getContext(),
                getTheme(theme, androidDatePickerMode, androidTimePickerMode),
                (view, year, month, dayOfMonth) -> {
                    calendar.set(year, month, dayOfMonth);
                    resultCallback.success(calendar.getTime());
                },
                calendar.get(Calendar.YEAR),
                calendar.get(Calendar.MONTH),
                calendar.get(Calendar.DAY_OF_MONTH)
            );
    
            dialog.setOnDismissListener(_dialog -> resultCallback.dismiss());
                    dialog.create();
    
            Button doneButton = dialog.getButton(Dialog.BUTTON_POSITIVE);
            doneButton.setText(doneButtonText);
    
            Button cancelButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
            cancelButton.setText(cancelButtonText);
            cancelButton.setOnClickListener(
                view -> {
                    resultCallback.cancel();
                    dialog.dismiss();
                }
            );

            DatePicker picker = dialog.getDatePicker();
            if (minDate != null) {
                picker.setMinDate(minDate.getTime());
            }
            if (maxDate != null) {
                picker.setMaxDate(maxDate.getTime());
            }
    
            dialog.show();
        }
    });
}

Capacitor doctor

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 5.4.0
@capacitor/core: 5.4.0
@capacitor/android: 5.4.0
@capacitor/ios: 5.4.0

Installed Dependencies:

@capacitor/cli: 5.3.0
@capacitor/android: 5.3.0
@capacitor/core: 5.3.0
@capacitor/ios: 5.3.0

[success] Android looking great! 👌

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: Getting package android.database does not exist.

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

When try ro run code, getting below errors.
....@capawesome/capacitor-file-picker/android/src/main/java/io/capawesome/capacitorjs/plugins/filepicker/FilePicker.java:3: error: package android.database does not exist
import android.database.Cursor;

.....@capawesome/capacitor-file-picker/android/src/main/java/io/capawesome/capacitorjs/plugins/filepicker/FilePicker.java:4: error: package android.graphics does not exist
import android.graphics.BitmapFactory;

Expected behavior

Plugin should work correctly.

Reproduction

aaaa

Steps to reproduce

Add plugin and run code.

Other information

No response

Capacitor doctor

NA

feat: Output upload progression in Javascript?

Current problem

Hi,

I notice when running the plugin in Xcode console there is upload progression being printed. Is it possible to output this in Javascript in Capacitor?

Thank You!

Preferred solution

Output upload progress in Javascript.

Alternative options

No response

Additional context

No response

bug: FilePicker.pickFiles does not return anything on Android 13+ targeting SDK 33+

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

When utilizing the FilePicker.pickFiles method, nothing is returned after selecting a file in the new application window that appears.

const openFilePicker = async () => {
  const result = await FilePicker.pickFiles({
    types: ['application/pdf', 'image/png', 'image/jpeg', 'image/gif', 'image/tiff'],
    multiple: true,
  })

  console.log(result.files);
}

Expected behavior

The value of result.files is an array of file paths.

Reproduction

https://github.com/garrensweet/cap-file-picker

Steps to reproduce

  1. npm install
  2. ionic cap sync android
  3. gradle sync
  4. build app
  5. click 'Select Image'
  6. Choose an image
  7. Nothing happens

Other information

No response

Capacitor doctor

Latest Dependencies:

@capacitor/cli: 5.0.5
@capacitor/core: 5.0.5
@capacitor/android: 5.0.5
@capacitor/ios: 5.0.5

Installed Dependencies:

@capacitor/ios: not installed
@capacitor/cli: 5.0.5
@capacitor/core: 5.0.5
@capacitor/android: 5.0.5

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: No Activity found to handle Intent

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

I am getting this on Android 9 SDK 28 device. Is there any compatible list for the plugin? Capacitor itself should have support, see: https://capacitorjs.com/docs/main/reference/support-policy#minimum-supported-platforms

CapacitorException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://<bundle>.fileprovider/files/config-files/73049bf801e8cb283e48932123640907_870080_KATALOG2018_DE_LR.pdf flg=0x1 }

Expected behavior

Open's PDF

Reproduction

https://github.com/muuvmuuv/issue-capawesome-team-plugins

Steps to reproduce

  1. Open any file on Android 9 SDK 28

Other information

I have set the files-path but can't tell if its correct or what else I should put in there. The files we open are downloaded from the web and saved with Filesystem plugin.

  <files-path
    name="files"
    path="." />

Capacitor doctor

Latest Dependencies:
@capacitor/cli: 5.2.1
@capacitor/core: 5.2.1
@capacitor/android: 5.2.1
@capacitor/ios: 5.2.1
Installed Dependencies:
@capacitor/cli: 5.2.1
@capacitor/core: 5.2.1
@capacitor/android: 5.2.1
@capacitor/ios: 5.2.1

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug:

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

update app popup alwase show & not get updated from android Store there able to see update button

`const result = await AppUpdate.getAppUpdateInfo();
console.log('result', result);
console.log('AppUpdateAvailability',AppUpdateAvailability)

if (result.updateAvailability !== AppUpdateAvailability.UPDATE_AVAILABLE) {
console.log('first')
return;
}
if (result.immediateUpdateAllowed) {
console.log('secound')
await AppUpdate.performImmediateUpdate();
}
}`

Expected behavior

Must update from store once when update is there

Reproduction

https://github.com/kutumbh/mobile-ux-app/

Steps to reproduce

  1. add this code on app.vue
  2. generate apk from android studio for old ver.
  3. intall on mobile
  4. when you open app its keep alwase showing

Other information

No response

Capacitor doctor

Latest Dependencies:

@capacitor/cli: 4.7.3
@capacitor/core: 4.7.3
@capacitor/android: 4.7.3
@capacitor/ios: 4.7.3

Installed Dependencies:

@capacitor/cli: 4.7.3
@capacitor/android: 4.7.3
@capacitor/core: 4.7.3
@capacitor/ios: 4.7.3

[success] iOS looking great! 👌
[success] Android looking great! 👌

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: Error: File cannot be opened

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

I run the plugin demo and open a file from the downloads folder of my simulator. Then when I use the file opener to open the file I get the following error:

2023-08-05 14:35:57.452 28539-28539 Capacitor               dev.robingenz.capacitor.plugindemo   V  callback: 91063589, pluginId: FileOpener, methodName: openFile, methodData: {"path":"content:\/\/com.android.providers.downloads.documents\/document\/msf%3A1000000038"}
2023-08-05 14:35:57.491 28539-28611 Capacitor               dev.robingenz.capacitor.plugindemo   D  Sending plugin error: {"save":false,"callbackId":"91063589","pluginId":"FileOpener","methodName":"openFile","success":false,"error":{"message":"File cannot be opened."}}
2023-08-05 14:35:57.495 28539-28559 EGL_emulation           dev.robingenz.capacitor.plugindemo   D  app_time_stats: avg=380.47ms min=9.26ms max=1398.08ms count=4
2023-08-05 14:35:57.516 28539-28539 Capacitor/Console       dev.robingenz.capacitor.plugindemo   E  File: http://localhost/main.0744f8895edac34a.js - Line 1 - Msg: Error: Uncaught (in promise): Error: File cannot be opened.
                                                                                                    Error: File cannot be opened.
                                                                                                        at returnResult (http://localhost/:846:32)
                                                                                                        at win.androidBridge.onmessage (http://localhost/:821:21)

Expected behavior

I expect the file to be opened on the device.

Reproduction

https://github.com/robingenz/capacitor-plugin-demo

Steps to reproduce

  1. Clone the demo repo https://github.com/robingenz/capacitor-plugin-demo.
  2. Installation (npm i, npm build, npx cap sync)
  3. Run the APP on a virtual device (Android 34 used)
  4. Select a file and then try to open it using the app.

Other information

No response

Capacitor doctor

$ npx cap doctor
[warn] The bundledWebRuntime configuration option has been deprecated. Can be safely deleted.
Latest Dependencies:

@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2

Installed Dependencies:

@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2

[error] Missing attribute in app/src/main

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

feat(nfc): Android Reader Mode

Is your feature request related to a problem? Please describe:

The Android Reader Mode is currently not supported.

Describe the solution you'd like:

Support the Android Reader Mode.

Describe alternatives you've considered:

Additional context:

See Android docs.

feat (cloudinary): Add Cloudinary AI Background Removal feature to the upload function

Current problem

Currently, the cloudinary package in the capacitor-plugins repository does not support the Cloudinary AI Background Removal feature during the upload process. This feature is particularly useful for users who need to automatically remove the background of images during the upload process, saving them the time and effort of manually editing the images.

Preferred solution

I propose to add the Cloudinary AI Background Removal feature to the upload function of the cloudinary package. This feature should be activated by setting the background_removal parameter to cloudinary_ai during the upload process.

Alternative options

An alternative, as suggested by the Cloudinary documentation, is to remove the background on-the-fly by specifying the background_removal effect in the image URL. However, this would not automatically remove the background during the upload process, but rather when the image is delivered or displayed.

Additional context

The Cloudinary AI Background Removal feature is a powerful tool that uses AI to automatically remove the background of images. More information about this feature can be found in the Cloudinary documentation.

bug(file-picker): `pickFiles (...)` doesn't work first time on Safari

Plugin version:
0.5.7

Platform(s):
Safari Web

Current behavior:
When first calling the command pickFiles on safari (ie from button click on first load of page) - nothing happens, it fails silently (no file picker shown).
When calling the function a second time (pressing the button again), everything works as expected.

If you refresh the page, this same series of events occurs. so seems to maybe be an initialization related issue?

Everything is aok on other browsers so far!

Thanks!

Expected behavior:
First call to pickFiles should open the file picker

Steps to reproduce:
the quickest way to reproduce this is to run your capacitor plugin demo in safari and go to the FilePicker screen.
Click the Pick Files button once - nothing happens
Click the Pick Files button a second time - file picker window opens

Capacitor doctor:

Latest Dependencies:

  @capacitor/cli: 4.6.3
  @capacitor/core: 4.6.3
  @capacitor/android: 4.6.3
  @capacitor/ios: 4.6.3

Installed Dependencies:

  @capacitor/cli: 4.6.1
  @capacitor/core: 4.6.1
  @capacitor/android: 4.6.1
  @capacitor/ios: 4.6.1

[success] iOS looking great! 👌
[success] Android looking great! 👌```

feat(photo-editor): pick and crop to specified size

Usecase description:
In some cases, we need the users to crop an image to a specific size. A relevant use case would be a profile picture, which in most cases are rectangular (e.g. 400 x 400px).

Describe the solution you'd like:
It would be really nice, if the developer could specify a target height and width. The user then sees a boundary which respects the given aspect ratio. The user can move the boundary around and change it's size (to only show the face on the picture for example). The plugin then returns the image in the given size.

If the user selects a bigger area (e.g. 800x800 px) the plugin should scale the size down to the specified size (400 x 400 in this example). The same should work the other way around 200 x 200 -> 400 x 400.

bug: file-opener - forbidden 403 on download

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

pnpm add @capawesome-team/capacitor-file-opener
 ERR_PNPM_FETCH_403  GET https://npm.pkg.github.com/@capawesome-team%2Fcapacitor-file-opener: Forbidden - 403

This error happened while installing a direct dependency of xxxxxx

An authorization header was used: Bearer gith[hidden]

These authorization settings were found:
//npm.pkg.github.com/:_authToken=gith[hidden]
@capawesome-team:registry=https://npm.pkg.github.com/
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=F172[hidden]

Expected behavior

Should be found

Reproduction

...

Steps to reproduce

  1. Add the package

Other information

No response

Capacitor doctor

Latest Dependencies:
@capacitor/cli: 5.2.1
@capacitor/core: 5.2.1
@capacitor/android: 5.2.1
@capacitor/ios: 5.2.1
Installed Dependencies:
@capacitor/cli: 5.2.1
@capacitor/core: 5.2.1
@capacitor/android: 5.2.1
@capacitor/ios: 5.2.1

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

feat(file-picker): save all picked files in a temporary subfolder on iOS

Working on iOS the plugin has to copy with filemanager a picked media to a tmp folder.
The tmp folder today is located on the root folder of app container.

Is it possible to locate this temporary folder inside a capacitor/filesystem folders? For example inside /Library/Caches?

Could be a great feature to locate all files inside a sub folder for the picker "picker-tmp" so we can check for lost content and cleanup if necessary.

Last one to improve final user experience to have media stored on a sub folder, name generated as today filename, the filename inside using original filename for the media.

Thank you.

feat(cloudinary): pass eager transformations during upload request

Is your feature request related to a problem? Please describe:

Showing videos after uploading can take a long time depending on the cloudinary transformations you use and the size/format of the video etc.

Reached out to Cloudinary support, they suggest to use eager transformations.

Describe the solution you'd like:

Reading the docs a bit, it seems like we can pass our transformations during each upload in order to "request" the transformations to be applied eagerly during upload.

I would love support for this through this plugin.

bug:

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

Created a release, with version 7 in XCode
Created release with version 7.0 in App Store Connect

Upon release, Capacitor App Update believes that there is an update from version 7 to 7.0, even though they are the same.

Expected behavior

No update should be available.

Reproduction


Steps to reproduce

MCRE not really possible as requires publishing app.

Example of issue (Safari Web Inspector on app)
Screenshot 2023-08-07 at 4 13 57 PM

Other information

No response

Capacitor doctor

Latest Dependencies:

@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2

Installed Dependencies:

@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug(badge): `set(...)` only works after creating a notification.

Plugin version:

    "@capawesome/capacitor-badge": "^2.0.2",

Platform(s):

generic #91~18.04.1-Ubuntu SMP Fri Jul 23 13:36:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Current behavior:

Using Badge.set does not work, but works after creating a notification

Expected behavior:

Badge.set should work fine.

Steps to reproduce:

Badge.clear();
Badge.set({count: 10});
console.log("Badge Count: ", Badge.get()); // count is 0

Related code:

 Badge.clear();
    Badge.set({count: 10});
    console.log("Badge Count: ", Badge.get()); //count is 0

Other information:

Capacitor doctor:

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 4.6.2
@capacitor/core: 4.6.2
@capacitor/android: 4.6.2
@capacitor/ios: 4.6.2

Installed Dependencies:

@capacitor/cli: 4.4.0
@capacitor/ios: 4.4.0
@capacitor/core: 4.4.0
@capacitor/android: 4.4.0

[success] Android looking great! 👌

insert the output from `npx cap doctor` here

feat: File Picker pickerDismissed should provide info on the action

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Current problem

I was trying to use the FilePicker pickerDismissed event to hook up some UI while files were processing. However, it fires the event when picker is cancelled. I've tried to work around it with various state updates but the logic gets very complicated and annoying to deal with.

Preferred solution

The way I see it we have two options:

1.) Picker Dismissed event should provide some basic data on the event. Such as either a dismiss due to cancel or dismiss due to files selected (add)
2.) Picker Dismissed could only fire if people actually selected files as most likely this event will be used to hook up UI around processing selected files.

Alternative options

No response

Additional context

No response

feat(file-picker): iOS preparing video progress

Hi,

We are using file picker to pick media files (video and picture).

In a previouse version we use the html input file to select media files from an iOS device and iOS on some file let show a progress dialog for preparing file. Now we are using the file picker with capacitor 4 (to have native path) and on iOS we can't see anymore the system progress dialog box.

I add a spinner starting at file picker call and ending at then or catch of the picker promise, but I can't show any progress percentage.

Is there a way to enable in file picker the system progress dialog?
Or to have a call back about preparing progress?

To show to final user the app is not blocked and is going on preparing file will be fine to avoid user to stop the app thinking to the app blocked.

Thank you in advance.

bug: in-app update not working

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

i'm trying to use @capawesome/capacitor-app-update to update my ionic app with playstore app.

My playstore apk version is '1.0.32'.
And new build that i made with version :'1.0.33'

When i call AppUpdate.getAppUpdateInfo() then in response i'm getting currentVersion:'33' and availableVersion:'33' and all update allowing variables giving false values.
Screenshot 2023-07-19 161324

Expected behavior

Need to update app inside my ionic app, just click on one button("app update").

Like if my previously play store installed app version is 1.0.32 then if i click on "app update" button from my app then it's automatically update with latest version that is newly available in play store.
image

Reproduction

https://github.com/dhruvi7489/ionic-in-app-update.git

Steps to reproduce

  1. uat environment
  2. run with ionic s
  3. build with
    ionic build
    Ionic cap sync android
    ionic cap open android
  4. build signed apk with signature
  5. run in real device

Other information

No response

Capacitor doctor

image

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: unable to open file natively with file://

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

We have configured the file_paths.xml

<files-path name="files" path="./" />
<files-path name="config-files" path="config-files/" />

Through Filesystem plugin we have this file:// url. But unfortunately I cannot get any content:// file url for android which is specified in the API docs. Therefore it does not open in Acrobat or open the native Choose-Menu.

file:///data/user/0/<package>/files/config-files/e5652955d21e04e647ad686492d19.pdf

From my understanding I just need to ref the sub-dir "config-files" so other apps can have access to this files underneath. Is this correct?

Expected behavior

Opens PDF. More detailed information about file_path.xml and acceptance of file://.

Reproduction

Will create one if needed but I think its just configuration

Steps to reproduce

  1. Open PDF saved in /files/sub-dir/

Other information

No response

Capacitor doctor

Latest Dependencies:
@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2
Installed Dependencies:
@capacitor/cli: 5.2.2
@capacitor/core: 5.2.2
@capacitor/android: 5.2.2
@capacitor/ios: 5.2.2

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug(file-picker): type `application/json` is ignored on Android

Plugin version:

  • 0.6.1

Platform(s):

  • Android

Current behavior:

Some users reported that application/json as a type is ignored by Android (see here).

Expected behavior:

application/json should not be ignored. Try to find a solution/workaround or document it.

Steps to reproduce:

Related code:

insert short code snippets here

Other information:

Capacitor doctor:

insert the output from `npx cap doctor` here

bug(file-opener): `Failed to find configured root that contains ...`

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

error message when opening a file in the app directory: Failed to find configured root that contains /data/data/io.ionic.starter/files/frame.png

Expected behavior

no error message

Reproduction

Steps to reproduce

Other information

No response

Capacitor doctor

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: Dependency conflict upon reinstalling packages

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

installing npm packages on the Capacitor 5 beta with background-task already in the dependency manifest causes a conflict with capacitor core. This does not happen however if background-task is installed after npm install using npm i @capawesome/[email protected]

npm ERR! Found: @capacitor/[email protected]
npm ERR! node_modules/@capacitor/core
npm ERR!   @capacitor/core@"next" from the root project
npm ERR!   peer @capacitor/core@"^5.0.0-beta.2" from @capacitor/[email protected]
npm ERR!   node_modules/@capacitor/android
npm ERR!     @capacitor/android@"next" from the root project
npm ERR!   6 more (@capacitor/app, @capacitor/haptics, @capacitor/ios, ...)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! @capawesome/capacitor-background-task@"^2.0.0-dev.8c05008.1680891292" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: @capacitor/[email protected]
npm ERR! node_modules/@capacitor/core
npm ERR!   peer @capacitor/core@"^4.0.0" from @capawesome/[email protected]
npm ERR!   node_modules/@capawesome/capacitor-background-task
npm ERR!     @capawesome/capacitor-background-task@"^2.0.0-dev.8c05008.1680891292" from the root project

Expected behavior

there shouldn't be any conflict with capacitor 5

Reproduction

https://github.com/StefanoVe/background-task-dep-bug

Steps to reproduce

  1. Migrate to Capacitor 5 beta
    2.run "npm i @capawesome/[email protected]"
  2. run "rm -rf node_modules package_lock.json"
  3. run "npm i"

Other information

No response

Capacitor doctor

warn] The bundledWebRuntime configuration option has been deprecated. Can be safely
       deleted.
💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 4.8.0
  @capacitor/core: 4.8.0
  @capacitor/android: 4.8.0
  @capacitor/ios: 4.8.0

Installed Dependencies:

  @capacitor/cli: 5.0.0-beta.3
  @capacitor/core: 5.0.0-beta.3
  @capacitor/android: 5.0.0-beta.3
  @capacitor/ios: 5.0.0-beta.3

[success] iOS looking great! 👌
[success] Android looking great! 👌

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: Execution failed for task ':app:checkReleaseDuplicateClasses'

Plugin(s)

  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

I have encountered the following error stack trace while attempting to install the app after successfully installing the package. Regrettably, I have been unable to find a solution that resolves the issue.

Duplicate class com.google.android.play.core.common.IntentSenderForResultStarter found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and core-common-2.0.2-runtime (com.google.android.play:core-common:2.0.2)
Duplicate class com.google.android.play.core.common.LocalTestingException found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and core-common-2.0.2-runtime (com.google.android.play:core-common:2.0.2)
Duplicate class com.google.android.play.core.common.PlayCoreDialogWrapperActivity found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and core-common-2.0.2-runtime (com.google.android.play:core-common:2.0.2)
Duplicate class com.google.android.play.core.listener.StateUpdatedListener found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and core-common-2.0.2-runtime (com.google.android.play:core-common:2.0.2)
Duplicate class com.google.android.play.core.review.ReviewInfo found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and review-2.0.1-runtime (com.google.android.play:review:2.0.1)
Duplicate class com.google.android.play.core.review.ReviewManager found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and review-2.0.1-runtime (com.google.android.play:review:2.0.1)
Duplicate class com.google.android.play.core.review.ReviewManagerFactory found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and review-2.0.1-runtime (com.google.android.play:review:2.0.1)
Duplicate class com.google.android.play.core.review.testing.FakeReviewManager found in modules core-1.9.0-runtime (com.google.android.play:core:1.9.0) and review-2.0.1-runtime (com.google.android.play:review:2.0.1)

Expected behavior

I would like to be able to install the app or find a workaround for it.

Reproduction

https://github.com/lucasschulte/capacitor-rate-update-bug

Steps to reproduce

EDIT: I was able to reproduce the problem. It is probably due to the combination with another package "capacitor-rate-update" and Capacitor 5

Other information

No response

Capacitor doctor

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 5.1.0
@capacitor/core: 5.1.0
@capacitor/android: 5.1.0
@capacitor/ios: 5.1.0

Installed Dependencies:

@capacitor/core: 5.1.0
@capacitor/ios: 5.1.0
@capacitor/cli: 5.1.0
@capacitor/android: 5.1.0

[success] iOS looking great! 👌
[error] Missing attribute in app/src/main

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

feat: add `file-saver` plugin

Current problem

Currently there is no Capacitor 4 compatible plugin that can be used to save files via a dialog.

Preferred solution

Create a Capacitor 4 plugin to save files via a dialog.

Alternative options

No response

Additional context

No response

feat(file-picker): Create the option to define a limit for the number of files picked by user

Is your feature request related to a problem? Please describe:

I would like if can define a max number of files picked by user, for delimite (how like whatsapp). This would prevent the user from choosing infinite files.

Describe the solution you'd like:

Just an argumento in options the file picker for limit this.
like: limit?: 10 (the user can upload 10 files).

Describe alternatives you've considered:

Additional context:

feat(nfc): `transceive(...)` only works for custom commands right now

Plugin version:
"@capawesome-team/capacitor-nfc": "5.0.1"

Platform(s):
IOS

Current behavior:
Transceive method only works for custom Commands right now, at least there seems to be no way to send any other command than a custom one, the iso15693CommandCode range being limited to "0xA0 to 0xDF" which corresponds to custom commands only

Expected behavior:
It would be nice for the transceive command to understand a larger range of "iso15693CommandCode" and do some kind of "switch" while bridging to iOS methods, and decide of the method to use then, be it "customCommand(...)", "readMultipleBlocks(...)", I don't know about the implementation.

bug(datetime-picker): `getConfigValue` is deprecated

Platform(s):

  • iOS

Current behavior:

XCode Warning:

'getConfigValue' is deprecated: use getConfig() and access config values using the methods available depending on the type.

Expected behavior:

No warning.

Steps to reproduce:

  1. Build the plugin in XCode.

bug: Filepicker doesn´t work in android

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

I put the corresponding function of the plugin: in vue-ionic :

const pickMedia = async () => {
      const result  = await FilePicker.pickImages({
        multiple: true,
    
      })

     photoPath.value = Capacitor.convertFileSrc(result.files[0].path)
    }

And test with android: pixel 4 android 33

it gives me this error

Unable to find a Capacitor plugin to handle requestCode, trying Cordova plugins 1684100812
2023-09-26 20:47:53.454  5755-5755  CursorWindow            com.events                           E  Failed to read row 0, column 4294967295 from a window with 1 rows, 10 columns
2023-09-26 20:47:53.468  5755-5755  FilePicker              com.events                           E  getModifiedAtFromUri failed.
                                                                                                    java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
                                                                                                    	at android.database.CursorWindow.nativeGetLong(Native Method)
                                                                                                    	at android.database.CursorWindow.getLong(CursorWindow.java:539)
                                                                                                    	at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:78)
                                                                                                    	at android.database.CursorWrapper.getLong(CursorWrapper.java:131)
                                                                                                    	at io.capawesome.capacitorjs.plugins.filepicker.FilePicker.getModifiedAtFromUri(FilePicker.java:74)
                                                                                                    	at io.capawesome.capacitorjs.plugins.filepicker.FilePickerPlugin.createPickFilesResult(FilePickerPlugin.java:198)
                                                                                                    	at io.capawesome.capacitorjs.plugins.filepicker.FilePickerPlugin.pickFilesResult(FilePickerPlugin.java:146)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.getcapacitor.Plugin.triggerActivityCallback(Plugin.java:155)
                                                                                                    	at com.getcapacitor.Plugin.lambda$initializeActivityLaunchers$0(Plugin.java:117)
                                                                                                    	at com.getcapacitor.Plugin.$r8$lambda$eMEw5HOEwzweqoelVfHBIM3lIww(Unknown Source:0)
                                                                                                    	at com.getcapacitor.Plugin$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:6)
                                                                                                    	at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:418)
                                                                                                    	at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:375)
                                                                                                    	at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:818)
                                                                                                    	at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:152)
                                                                                                    	at com.getcapacitor.BridgeActivity.onActivityResult(BridgeActivity.java:172)
                                                                                                    	at android.app.Activity.dispatchActivityResult(Activity.java:8613)
                                                                                                    	at android.app.ActivityThread.deliverResults(ActivityThread.java:5340)
                                                                                                    	at android.app.ActivityThread.handleSendResult(ActivityThread.java:5386)
                                                                                                    	at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
                                                                                                    	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2308)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                    	at android.os.Looper.loop(Looper.java:288)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7898)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

Expected behavior

Return url image

Reproduction

https://github.com/matteo6b/events

Steps to reproduce

  1. In android
  2. in mac
  3. with vite
  4. Launch demo app
  5. call the function

Other information

No response

Capacitor doctor

npx cap doctor
[warn] The bundledWebRuntime configuration option has been deprecated. Can be
safely deleted.
💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 5.4.1
@capacitor/core: 5.4.1
@capacitor/android: 5.4.1
@capacitor/ios: 5.4.1

Installed Dependencies:

@capacitor/core: 5.4.1
@capacitor/cli: 5.4.1
@capacitor/android: 5.4.1
@capacitor/ios: 5.4.1

[success] iOS looking great! 👌
[success] Android looking great! 👌

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

bug: Invalid column latitude

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

select video

getModifiedAtFromUri failed.
java.lang.IllegalArgumentException: Invalid column latitude at android.database.DatabaseUtils.readExceptionFromParcel(D

Expected behavior

select a video

Reproduction

Steps to reproduce

  1. pickVideo
  2. Android 10 + Pixel 6 API 29 Android Studio Virtual Device

Other information

Android 14 is ok, ios too

Capacitor doctor

💊 Capacitor Doctor 💊

Latest Dependencies:

@capacitor/cli: 5.5.0
@capacitor/core: 5.5.0
@capacitor/android: 5.5.0
@capacitor/ios: 5.5.0

Installed Dependencies:

@capacitor/cli: 5.4.2
@capacitor/core: 5.4.2
@capacitor/android: 5.4.2
@capacitor/ios: 5.4.2

[success] iOS looking great! 👌
[success] Android looking great! 👌

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

feat:

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Current problem

Users are encountering inconvenience while attempting to preview large video files. The current system mandates that the entire video file be downloaded before it can be previewed, which results in a suboptimal user experience particularly for large files.

Preferred solution

Implement a feature that allows video or other files to be streamed directly from URLs. This could help the user by minimizing the waiting time.

Alternative options

No response

Additional context

No response

docs(datetime-picker): motivation

i'd love to see a sentence in the readme on the motivation for this plugin.

what's the main benefit of using this over the native <input type="date" />. The native date picker has worked pretty well for us so far. (With some minor CSS tweaks/fixes for different browsers on the web)

feat: add `file-transfer` plugin

Is your feature request related to a problem? Please describe:

Currently there is no Capacitor 4 compatible plugin that can be used to upload and download files.

Describe the solution you'd like:

Create a plugin that allows you to upload and download files.

Describe alternatives you've considered:

Additional context:

Related to ionic-team/capacitor#5964

bug: The file-picker plugin doesn't return a blob when I select a pdf file on android.

Plugin(s)

  • Android Foreground Service
  • Android Battery Optimization
  • App Update
  • Background Task
  • Badge
  • Cloudinary
  • Datetime Picker
  • File Opener
  • File Picker
  • Managed Configurations
  • NFC
  • Photo Editor
  • Screen Orientation

Did you test the latest version?

  • I use the latest version

Platform(s)

  • Android
  • iOS
  • Web

Current behavior

The plugin opens the file-picker, but after selecting a pdf file, the plugin only returns the file size, type, name and path. But does not return a blob.

Expected behavior

I expect the plugin to return the file size, type, name, path and blob.

Reproduction

https://github.com/Evanzsnr/capacitor-filepicker

Steps to reproduce

  1. Clone the repository.
  2. Navigate to the directory.
  3. Run npm install.
  4. Run npm install @capacitor/android
  5. Run npx cap add android.
  6. Run ionic build.
  7. Run npx cap sync android.
  8. Run npx cap build android.
  9. Install and run the apk.

Other information

No response

Capacitor doctor

Latest Dependencies:

  @capacitor/cli: 5.2.2
  @capacitor/core: 5.2.2
  @capacitor/android: 5.2.2
  @capacitor/ios: 5.2.2

Installed Dependencies:

  @capacitor/ios: not installed
  @capacitor/core: 5.2.2
  @capacitor/android: 5.2.2
  @capacitor/cli: 5.2.2

Before submitting

  • I understand that incomplete issues (e.g. without reproduction) are closed.

feat(nfc): Android Beam Message

Hi Dev,
I was wondering is this plugin capable sending push message from what ever content being sent (Android Beam)

Thanks and regards

bug(file-picker): path is not absolute on Android

Is your feature request related to a problem? Please describe:

For example, some paths returned by pickFiles(...) look like /document/image/1234.

Related to https://stackoverflow.com/questions/13209494/how-to-get-the-full-file-path-from-uri

Describe the solution you'd like:

The path should be absolute, e.g. /storage/emulated/0/DCIM/Camera/IMG_20220808_1234.jpg.

Describe alternatives you've considered:

Additional context:

Maybe also related: https://github.com/hiddentao/cordova-plugin-filepath

feat(cloudinary): add `progress` listener

Is your feature request related to a problem? Please describe:

Currently, it is not possible to be notified about progress during the upload, for example, to show the user a progress bar.

Describe the solution you'd like:

Add a progress listener.

Describe alternatives you've considered:

Additional context:

Android:
https://github.com/capawesome-team/capacitor-cloudinary/blob/a8d0a4520d537e54b854b73c859f891b3fa0311e/android/src/main/java/io/capawesome/capacitorjs/plugins/cloudinary/Cloudinary.java#L45

iOS:
https://github.com/capawesome-team/capacitor-cloudinary/blob/a8d0a4520d537e54b854b73c859f891b3fa0311e/ios/Plugin/Cloudinary.swift#L27

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.