私はphonegapを使ってオフラインアプリケーションを構築したいのですが、私はlocaldatabaseが必要です。私は私のアプリケーションをロードするindex.jsファイルを持って、そこに私はグローバル変数を持っています。phonegapでindexededDbを使用する
var db;
私はそれで、ユーザーのログは、ユーザーがオフラインでそれを使用することができますのIndexedDBデータベース内のデータベース情報を保存することを、コントローラを持っています。
//controller call
Database.create(res.data.categories);
function Database() {
return {
create: function (categoryDocs) {
var request = indexedDB.open("kaldoa", 1);
request.onsuccess = function (event) {
db = event.target.result;
console.log("DB loaded successfully");
};
request.onerror = function (event) {
console.log(event)
};
request.onupgradeneeded = function (event) {
db = event.target.result;
console.log("DB initiliazed/created");
//create collections
db.createObjectStore("categories", {autoIncrement: true});
//create documents
var transaction = event.target.transaction;
var categories = transaction.objectStore("categories");
//add array objects to document
categories.add(categoryDocs);
};
}
}
}
クロムインスペクタをチェックインすると、dbsが作成され、すべてが良好です。
ここでは、カテゴリという名前で保存されたデータを表示します。
カテゴリを処理する別のコントローラでは、これを行います。持つ
function categoryCtrl($scope, Category){
Category.browse().onsuccess = function (e) {
$scope.categories = e.target.result.value;
};
}
問題イムは、データがクロームで動作していることですが、それは、PhoneGapのでは動作しません。 PhoneGapのでは私はこのコンソールのエラーは、私はそれがで働く理由を把握しようと、すべての日の私の頭を壊している
function Category() {
return {
browse: function() {
return db.transaction(["categories"], "readonly").objectStore("categories").openCursor()
}
}
}
カテゴリデータをフェッチするサービスに関連している
Error: undefined is not an object (evaluating 'db.transaction')
このconsole.errorを取得しますクロムが含まれています。私は、2016年9月29日にリリースされたios 10が、サファリとウェブビューのサポートを追加したことを知っています。