Cordova plugin vs.using webkit directly

I’m developing an app that wants to store music files it creates (mp3, ogg and wav) locally on the client device.

This app must also run as a website (it also should run as an iOS or Android app).

After lots of research, our preferred mechanism for client-side local storage of music files is IndexedDB - which has existed in webkit browsers for a while, see, e.g.

Here are my questions (can’t seem to find answers easily to those):

  1. Can we use advanced APIs that already exist in webkit browsers, such as the IndexedDB API or the Web Audio API? Will these APIs work when the app runs not in a browser, but via Cordova as an iOS or Android app? I prefer to use the available browser/webkit APIs rather than add another Cordova layer.

  2. When there’s a Cordova plugin with similar functionality, e.g. in the case of IndexedDB, there’s the Cordova indexed-db plugin ( ) - we have a choice: either use the cordova plugin or use the webkit browser’s API directly - which one are we better off using, if we want this app to run both as a web page and as a hybrid app??

Thank you very much for your input. It isn’t clear to me if or why we need to use Cordova plugins for APIs that already exist in webkit browsers.

If you want to fully support the large number of devices which can be supported, you’ll want to use the plugin.

The current level of support for indexedDb cab be found here. The gist of it is that Android 4.3 and below does not support indexedDb, and iOS only partially supports it. The cordova plugin polyfills these gaps by utilizing webSql transparently if indexedDb is not present.

Thanks very much for your response!