我在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在他的 回答
Cordova是特定于平台的,当你运行ionic serve的时候,它就不工作了。
和
你可以用window替换cordova插件来使用websql数据库,所以你可以用window.openDatabase()代替sqlitePlugin.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模拟器来安装和检查,如果你不想要一个实际的设备。请不要考虑其他步骤,那是在浪费时间。