Code Monkey home page Code Monkey logo

cordova-plugin-indexeddb's Introduction

IndexedDB plugin for Apache Cordova

Implements Indexed Database API support for Apache Cordova apps based on IndexedDBShim implementation.

Support of Android and iOS.

Sample usage

Plugin follows Indexed Database API specification, no special changes are required. The following sample code creates todo store (if not exist) and adds new record.

var openReq = window.indexedDB.open("sampleDatabase");
openReq.onupgradeneeded = function (event) {
    var db = event.target.result;
    db.createObjectStore("todo", {autoIncrement: true});
};
openReq.onsuccess = function (event) {
    var db = event.target.result,
        sampleItem = { 
            todo: "my todo item",
            added_on: new Date()
        };
    var addReq = db.transaction("todo", "readwrite").objectStore("todo").add(sampleItem);
    addReq.onsuccess = function (event) {
        console.log("Operation completed successfully");
    };
    addReq.onerror = function (event) {
        console.log("Operation failed");
    };
}
openReq.onerror = function (event) {
    console.log("Operation failed");
}

Installation Instructions

Plugin is Apache Cordova CLI 3.x compliant.

  1. Make sure an up-to-date version of Node.js is installed, then type the following command to install the Cordova CLI:

     npm install -g cordova
    
  2. Create a project and add the platforms you want to support:

     cordova create sampleApp
     cd sampleApp
     cordova platform add android
     cordova platform add ios
    
  3. Add IndexedDB plugin to your project:

     cordova plugin add com.msopentech.indexeddb
    
  4. Build and run, for example:

     cordova build android
     cordova emulate android
    

To learn more, read Apache Cordova CLI Usage Guide.

Copyrights

Copyright (c) Microsoft Open Technologies, Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

cordova-plugin-indexeddb's People

Contributors

jamesmessinger avatar jsoref avatar panarasi avatar sgrebnov 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

Watchers

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

cordova-plugin-indexeddb's Issues

Is this plugin maintained?

Hi, I'd like to use this version on the latest Cordova, but I saw there's been several years since the last commit!

I also wonder if this plugin ONLY works on cordova, or will it also work in the browser?

Index names limited to only be valid SQL column names

Whereas IndexedDB proper allows for arbitrary strings (with symbols etc.) as index names, this shim only supports index names that would pass as valid SQL column names

myindex = ok
my_index = ok
my,index = error
my+index = error
my index = error
etc.

wrong plugin require web sql

In requireWebSql.js, in the require function should be pointing to cordova-plugin-websql.WebSQL not to com.msopentech.websql.WebSQL

Requiring old syntax version of Web SQL Plugin

Running Cordova Tools for Visual Studio 2015, when installing indexeddb plugin it also installs the web sql plugin (com.msopentech.websql) i think the correct plugin would be com-msopentech-websql right?

NPM install

Cannot install your plugin, because in plugin.xml package name is cordova-plugin-indexedDB, but in package.json cordova-plugin-indexeddb.

Fetching plugin "cordova-plugin-indexeddb" via npm
Failed to install 'cordova-plugin-mauron85-background-geolocation':Error: Expected plugin to have ID "cordova-plugin-indexeddb" but got "cordova-plugin-indexedDB".
    at checkID (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:177:15)
    at /Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:161:9
    at _fulfilled (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)
Error: Expected plugin to have ID "cordova-plugin-indexeddb" but got "cordova-plugin-indexedDB".
    at checkID (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:177:15)
    at /Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/fetch.js:161:9
    at _fulfilled (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/Users/finch/.nvm/versions/node/v0.12.7/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:355:11)

Map file not found

The map file in the minified js file is not found.

//# sourceMappingURL=indexeddbshim.min.js.map

Is Auto increment of keys implemented ?

Store created with.
db.createObjectStore("myStore",{keyPath:"myKey",autoIncrement :true});

for
store.put({value:"someValue"});
No data appears to be inserted.
but
store.put({myKey:1,value:"someValue"});
will insert data, but having to set the key value defeats the purpose of having an autoIncrement key.

Composite/complex/compound keyPath or index not supported

Can't pass an array as primary key into IDBDatabase.createObjectStore 2nd param 'keyPath' (and thus neither into any of the querying functions)

Can't pass an array into createIndex 2nd parameter

Composite keyPath is supported by most (all?) other browsers except IE. Note that Microsoft is behind this plugin.

More info: search stackoverflow about IndexedDB complex/composite/compound key & indexes
Also relevant: https://social.msdn.microsoft.com/Forums/windowsapps/en-US/dbf2fd2d-a8ca-4228-8a49-3948d44f7e26/indexeddb-and-complex-keypaths-for-index?forum=winappswithhtml5

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.