我在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
你能帮我吗?
答案 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模拟器来安装和检查您是否不需要实际设备。 请不要考虑其他步骤,这是浪费时间。