簡體   English   中英

無法讀取android中未定義的屬性'openDatabase'

[英]Cannot read property 'openDatabase' of undefined in android

嘗試使用插件通過ngCordova實現來管理移動設備SQLite上的數據庫,但每次我嘗試創建數據庫時它都會顯示相同的錯誤。 手機有Android 4.2.2

TypeError: Cannot read property 'openDatabase' of undefined

我的代碼,添加離子和ngCodova使用插件

angular.module('starter', ['ionic', 'ngCordova'])
    .run(startApp)
    .controller('networkCtrl', networkCtrl)
    .factory('databaseFtr', databaseFtr);

啟動應用

startApp.$inject = ['$ionicPlatform'];

function startApp($ionicPlatform) {

    $ionicPlatform.ready(function() {

        if (window.cordova && window.cordova.plugins.Keyboard) {
            cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            cordova.plugins.Keyboard.disableScroll(true);
        }

        if (window.StatusBar) {
            StatusBar.styleDefault();
        }

    });

}

調節器

networkCtrl.$inject = ['$scope', 'databaseFtr'];

function networkCtrl($scope, databaseFtr) {
    databaseFtr.crearDB();
}

databaseFtr.$inject = ['$cordovaSQLite'];

function databaseFtr($cordovaSQLite) {

    return {

        crearDB: function() {

            var db;

            db = $cordovaSQLite.openDB({
                name: "mydata.db",
                location: 'default'
            });


        }

    }

}

這是顯示插件安裝的捕獲

插件安裝

你可以嘗試使用

 window.sqlitePlugin.openDB({
            name: "mydata.db",
            location: 'default'
        });

代替

$cordovaSQLite.openDB({
            name: "mydata.db",
            location: 'default'
        });

我能夠找到問題的解決方案,這是完全未知的。

產生此問題的原因是因為數據庫的創建和打開意圖在應用程序嘗試啟動的同時發起,並且由於數據庫在沒有啟動應用程序的情況下不能存在,因為創建的方法這個,不可能被執行。

在我的情況下適用的解決方案是在通過命令ng-click運行函數之后創建數據庫。

function networkCtrl($scope, databaseFtr) {

    $scope.dbProcesos = {

        dbCreate: function() {
            var db;
            db = databaseFtr.crearDB();
        }

}




function databaseFtr($cordovaSQLite) {

    return {

        crearDB: function() {

            var db;

            db = $cordovaSQLite.openDB({
                name: "patologias.db",
                location: 'default'
            });

            return db;

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM