- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正尝试在我的应用程序中实现 ngCordova SQLite 插件,但尚未生成有效的解决方案。我关注了Nic Raboy's blog post关于如何将 SQLite 插件与 Ionic 项目一起实现为“T”,但我仍然收到错误:错误:未定义不是对象(评估“$window.sqlitePlugin.openDatabase”) 当我尝试在 iOS 模拟器中运行应用程序时。
我还验证了 ngCordova 和插件已加载到我的项目中。
这是我的脚本加载到项目中的顺序:
<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>
我的代码如下。
app.js
angular.module('whoPaidLast', ['ionic', 'ngCordova', 'whoPaidLast.controllers', 'whoPaidLast.services'])
.run(function($ionicPlatform, $cordovaSQLite) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
db = $cordovaSQLite.openDB({ name: 'accounts.db' });
$cordovaSQLite.execute(db, 'CREATE TABLE IF NOT EXISTS accounts (id integer primary key autoincrement, firstname text, lastname text, paid numeric, date text)');
});
})
controllers.js
angular.module('whoPaidLast.controllers', [])
.controller('DashCtrl', ['$ionicPlatform', '$scope', '$ionicModal', '$ionicActionSheet', '$cordovaSQLite', function ($ionicPlatform, $scope, $ionicModal, $ionicActionSheet, $cordovaSQLite) {
$scope.getList = function() {
var query = 'SELECT id, firstname, lastname, paid, date FROM accounts ORDER BY lastname ASC';
var db = $cordovaSQLite.openDB({ name: 'accounts.db' });
$ionicPlatform.ready(function() {
$cordovaSQLite.execute(db, query, [id, firstname, lastname, paid, date]).then(function(result) {
if(result.rows.length > 0) {
console.log('rows =' + result.rows);
} else {
$scope.results = [];
}
}, function(error) {
console.error(err);
});
});
};
});
您可能获得的任何信息或帮助都会有所帮助。提前致谢。
最佳答案
正如 Nic Raboy 所说,ngCordova SQLite openDB 调用的语法已更改为以下内容,尽管文档中有说明:
db = $cordovaSQLite.openDB( databasename, databaseType );
第二个参数databaseType 是数据库的存储方式。在我的例子中,我使用了用于在 iTunes 隐藏的后台存储数据库的数字,但使用 iCloud 进行了备份。
通过更改此调用的语法,这修复了我的错误。
注意:如果您尝试在浏览器中工作,这个打开的数据库调用将会出错。要解决此问题,您需要引入“if”语句以根据您的环境更改调用。以下对我有用:
if (window.cordova && window.SQLitePlugin) {
var db = $cordovaSQLite.openDB( 'accounts.db', 1 );
} else {
db = window.openDatabase('accounts', '1.0', 'accounts.db', 100 * 1024 * 1024);
}
关于ios - 在 Ionic 中使用 ngCordova $cordovaSQLite 插件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29400047/
我正在尝试使用 Ionic 和 ngCordova 录制音频。 这是我的代码: $scope.captureAudio = function() { var options = { limit: 3,
我正在尝试获取 ngCordova 类型,但 tsd 和类型都失败了: 如果我执行: tsd install ng-cordova --save 它输出; zero results 如果我执行: ty
我正在尝试使用' https://github.com/danwilson/google-analytics-plugin.git ' 带有 ngCordova 的插件。我已经添加了插件并在我的 Co
我正在 ng-Cordova 上构建一个项目。我尝试了很多例子来使用谷歌进行日志记录。我的需要是使用谷歌帐户登录我的应用程序。我有登录按钮。当我单击按钮时,它需要重定向到谷歌帐户并使用谷歌帐户登录,然
我在Ionic应用程序中使用ngCordova LocalNotification插件来安排设备上的通知并将其发送到本地。我的应用要求每次发送前一条通知时安排新的通知。 我正在使用$ cordovaL
我正在 ionic(angular + cordova)上开发应用程序,为了访问我使用 ngCordova 的 cordova 插件(angular 的 cordova 插件实现)。我有一个 $cor
我正在使用 ngcordova contacts plugin检索应用程序中的联系人。我想知道是否可以只获取至少有一个电话号码的联系人。 我使用了以下代码,它返回包含电子邮件但不包含电话号码的我的谷歌
我在我的 Ionic 应用程序中使用 ngCordova LocalNotification 插件,我试图让它以随机时间跨度重复。 例如,用户将触发通知在 1 分钟内启动,然后我需要在另外 2 分钟内
ngCordova getUUID() 返回设备未定义 我正在使用 Ionic 框架构建移动应用程序,我需要检索设备 UUID我使用 ngCordova 使用这里的缩小版本 ngCordova ! 这
我正在尝试将图像上传到我的 FTP。 到目前为止我所取得的成就是在这个 plnkr 我的cordova文件传输看起来像 $scope.upload =function(){ var opt
为了合并 Toastr ngCordova 插件..我按照以下步骤操作 凉亭安装 ngCordova 在我的应用中包含 ngCordova angular.module('app', ['ionic'
最近,我遇到了一些应用程序,它们能够在推送通知到达时在应用程序抽屉/锁定屏幕中向我显示图片(以及一些文本)。我想知道是否可以使用 Ionic/Angular/ngCordova 堆栈来实现此功能。 最
我试图确保我使用的是最新版本,因为我的 ngCordova 媒体插件由于某种原因无法工作。 我收到此错误: npm WARN locking Error: EACCES, open '/Users/S
我尝试在安装 Bower 后安装 ngCordova,但出现错误Bower 未被识别为内部命令任何想法如何解决此问题 最佳答案 首先使用以下命令检查您的计算机是否安装了 Bower bower -v
我有个小问题。我在 visual studio 2015 中启动了一个空的 cordova 应用程序,只是为了进行一些测试,我想在我的应用程序中尝试 ng-cordova 插件(没有 ionic )。
应用程序的目标:在应用程序处于前台和后台时获取每次移动的地理位置并记录位置。 我已经尝试了很多代码和组合,但我无法让它工作(2 天后...)。 经典地理定位 (getCurrentPosition)
我目前正在使用 ionic/ngcordova 构建一个 android 应用程序。我正在实现推送通知。我已经将推送通知实现为在 app.run(function(){..}) 注入(inject)的
我正在尝试将 native fb 连接添加到我的 ionic 应用程序。 我正在使用: - ionic - ngCordova - http://ngcordova.com/docs/plugins/
我正在尝试使用 readAsText ngCordova 插件读取 CSV 文件的内容。 只有当文件编码为unicode时我才能做到这一点,但大多数CSV文件都是Shift-JIS。当文件为 Shif
我已经安装了 cordova inapp 浏览器插件来添加社交 Facebook 登录。问题是,在我的应用程序中,我只允许通过 Facebook 登录,而不允许注册。在我的网络应用程序上,如果该用户已
我是一名优秀的程序员,十分优秀!