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

Dha*_*mar 4 angularjs cordova ionic-framework cordova-plugins

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

var db = $cordovaSQLite.openDB({ name: "myDB.db" });
Run Code Online (Sandbox Code Playgroud)

我在浏览器中使用"离子服务"来运行项目.

错误:未捕获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

请你帮助我好吗?

Roo*_*nen 6

正如用户jonnie在他的回答中所述

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

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

它应该适用于实际设备.


Koo*_*ndy 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");
    }
Run Code Online (Sandbox Code Playgroud)