ionic cordovaSQLite插件错误无法读取未定义的属性'openDatabase'

时间:2015-01-09 17:56:51

标签: angularjs cordova ionic-framework cordova-plugins

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

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

我在浏览器中使用“离子服务”来运行项目。

错误: 未捕获的TypeError:无法读取undefinedng-cordova.js的属性'openDatabase':5058

openDBapp.js:27

(匿名函数)ionic.bundle.js:37388

(匿名函数)ionic.bundle.js:2241

onPlatformReadyionic.bundle.js:2220

onWindowLoad

[主要错误] http://i.stack.imgur.com/Yctpl.png

你能帮我吗?

3 个答案:

答案 0 :(得分:6)

正如用户jonnie在answer

中所述
  

Cordova是特定于平台的,在运行离子服务时不起作用

  

你可以用窗口替换cordova插件来使用websql数据库,而不是sqlitePlugin.openDatabase()你可以使用window.openDatabase()

它应该适用于实际设备。

答案 1 :(得分: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");
    }

答案 2 :(得分:0)

如果您在网络浏览器中进行测试,则无法获得所需的结果。您需要一个实际的设备,无论是Android还是iOS。您可以使用MEMU或Bluestack模拟器来安装和检查您是否不需要实际设备。 请不要考虑其他步骤,这是浪费时间。