Ionic Cordova SQLite 插件错误 Cannot read 属性 'openDatabase' of undefined

Ionic Cordova SQLite plugin error Cannot read property 'openDatabase' of undefined

我在 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

你能帮帮我吗?

正如用户 jonnie 在他的 answer

中所述

Cordova is platform specific and doesn't work when you run ionic serve

you can replace the cordova plugin with window to use the websql databases so instead of sqlitePlugin.openDatabase() you can use window.openDatabase()

它应该可以在实际设备上正常运行。

您收到此错误是因为您尝试从 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");
    }

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