Ionic Cordova SQLite插件错误 不能读取未定义的属性'openDatabase'。

问题描述 投票:4回答:3

我在ngCordova插件cordovaSQLite中有1个问题。下面的代码。

var db = $cordovaSQLite.openDB({ name: "myDB.db" });

我在使用 ionic serve 浏览器中。

错误。

Uncaught TypeError: Cannot read property 'openDatabase' of undefinedng-cordova.js:5058 
openDBapp.js:27 
(anonymous function)ionic.bundle.js:37388 
(anonymous function)ionic.bundle.js:2241 
onPlatformReadyionic.bundle.js:2220 
onWindowLoad

enter image description here

你能帮帮我吗?

angularjs cordova ionic-framework cordova-plugins
3个回答
6
投票

正如用户jonnie在他的 回答

Cordova是特定于平台的,当你运行ionic serve的时候,它就不工作了。

你可以用window替换cordova插件来使用websql数据库,所以你可以用window.openDatabase()代替sqlitePlugin.openDatabase()。

在实际设备上应该可以正常工作。


5
投票

你得到这个错误是因为你试图从android获得数据库连接,但使用了错误的函数openDatabase()。这个函数将在客户端(浏览器)的情况下使用。使用openDb()函数从android获取数据库连接。

 if (window.cordova) {
       db = $cordovaSQLite.openDB({ name: "my.db" }); //device
            console.log("Android");
     }
     else{
       db = window.openDatabase("my.db", '1', 'my', 1024 * 1024 * 100); // browser
       console.log("browser");
    }

0
投票

如果你在浏览器中测试,你将不会得到想要的结果。你需要一个实际的设备,无论是Android还是iOS。你可以使用 MEMU 或Bluestack模拟器来安装和检查,如果你不想要一个实际的设备。请不要考虑其他步骤,那是在浪费时间。

© www.soinside.com 2019 - 2024. All rights reserved.