gpt4 book ai didi

angularjs - 如何将 ngCordova s​​qlite 服务和 Cordova-SQLitePlugin 与 Ionic Framework 一起使用?

转载 作者:IT王子 更新时间:2023-10-29 06:17:56 26 4
gpt4 key购买 nike

我一直在尝试将 sqlite 合并到一个简单的 Ionic 应用程序中,这是我一直遵循的过程:

 ionic start myApp sidemenu

然后我安装sqlite插件:

ionic plugin add https://github.com/brodysoft/Cordova-SQLitePlugin

和 ngCordova

bower install ngCordova

这给了我以下选项:找不到适合angular的版本,请选择一个: 1) angular#1.2.0 解析为 1.2.0 并且是 ngCordova#0.1.4-alpha 所要求的 2) angular#>= 1.0.8 解析为 1.2.0 并且是 angular-ui-router#0.2.10 所要求的 3) angular#1.2.25 解析为 1.2.25 并且是 angular-animate#1.2.25、angular-sanitize#1.2.25 所要求的 4) angular#~1.2.17 解析为 1.2.25 并且是 ionic#1.0.0-beta.13 所要求的前缀选择!将其持久化到 bower.json

我选择了选项 3) 我将脚本包含在文件中,如下所示:

<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>

然后我向搜索 View 添加了一个 Controller :

.controller('SearchCtrl', function ($scope, $cordovaSQLite){
console.log('Test');
var db = $cordovaSQLite.openDB({ name: "my.db" });

// for opening a background db:
var db = $cordovaSQLite.openDB({ name: "my.db", bgType: 1 });

$scope.execute = function() {
console.log('Test');
var query = "INSERT INTO test_table (data, data_num) VALUES (?,?)";
$cordovaSQLite.execute(db, query, ["test", 100]).then(function(res) {
console.log("insertId: " + res.insertId);
}, function (err) {
console.error(err);
});
};
})

这导致了错误:

> TypeError: Cannot read property 'openDatabase' of undefined
> at Object.openDB (http://localhost:8100/lib/ngCordova/dist/ng-cordova.js:2467:36)

接下来我尝试通过以下方式手动包含 SQLitePlugin.js:从 plugins/com.brodysoft.sqlitePlugin/www 复制到主 www/ 并将其添加到索引中。 html页面

我尝试在一切之前包括:

 <script src="SQLitePlugin.js"></script>
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>

我收到错误 ReferenceError: cordova is not defined所以我尝试在 cordova.js 脚本之后包含它,但仍然出现相同的错误

非常感谢您的帮助如果相关,这些是我正在使用的 Cordova 和 ionic 的当前版本:

ionic --version  1.2.5
cordova --version 3.5.0-0.2.7

这是生成的 bower.json

{
"name": "myApp",
"private": "true",
"devDependencies": {
"ionic": "driftyco/ionic-bower#1.0.0-beta.13"
}
}

和我的 package.json:

{
"name": "myapp",
"version": "1.0.0",
"description": "myApp: An Ionic project",
"dependencies": {
"gulp": "^3.5.6",
"gulp-sass": "^0.7.1",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0"
},
"devDependencies": {
"bower": "^1.3.3",
"gulp-util": "^2.2.14",
"shelljs": "^0.3.0"
}
}

最佳答案

如果有人在尝试在浏览器中运行它时仍然遇到错误,请尝试这个:

if (window.cordova) {
db = $cordovaSQLite.openDB({ name: "my.db" }); //device
}else{
db = window.openDatabase("my.db", '1', 'my', 1024 * 1024 * 100); // browser
}

关于angularjs - 如何将 ngCordova s​​qlite 服务和 Cordova-SQLitePlugin 与 Ionic Framework 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26101120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com