ngCordova的安装配置

官网提供了两种安装的方法: 
1. 使用bower来安装 
2. 下载zip文件

推荐使用bower安装,在使用bower之前,我们电脑中需要先配置bower。bower的配置非常简单:

bower简介:

Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。

准备工作:

  • 安装node环境:node.js
  • 安装Git,bower从远程git仓库获取代码包:g

安装bower:

使用npm,打开终端,输入:

npm install -g bower

其中-g命令表示全局安装

这时候我们就可以使用bower来安装我们的ngCordova。

安装ngCordova

进入到工程目录,使用bower工具安装:

bower install ngCordova

bower ECMDERR Failed to execute git ls-remote --tags,
如果git报错的话,需要配置下GIT如下:
git config --global url."https://".insteadOf git://
 

稍作等待,我们的ngCordova就安装好了。

我们查看一下我们的项目,发现ngCordova已经在“项目路径\www\lib”下面:

接着,将ng-cordova.js 或者 ng-cordova.min.js文件include到我们的index.html。

<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>

注意:ng-cordova.js文件必须在cordova.js之前并且在 AngularJS / Ionic文件之后(因为ngCordova depends on AngularJS)

在angular中添加ngCordova依赖

angular.module('myApp', ['ngCordova'])

通过deviceready event包装每个插件的调用

(不知道有没有翻译错。。)

在使用每个插件之前,必须先检测设备是否就绪,通过cordova内置的原生事件deviceready来检测,如下:

document.addEventListener("deviceready", function () {
$cordovaPlugin.someFunction().then(success, error);
}, false); // OR with IONIC $ionicPlatform.ready(function() {
$cordovaPlugin.someFunction().then(success, error);
});

ngCordova相机插件的使用

现在我们根据官网的文档来自己写一个小demo。

为了于cordova插件进行对比,我们还是使用上一讲的项目(即创建ionic项目时默认的那个)。

首先我们还是要安装插件的:

cordova plugin add cordova-plugin-camera

templates/tab-dash.html中的代码跟上一讲一样:

<ion-view view-title="Dashboard">
<ion-content class="padding">
<h2> Camera Test </h2>
<img id="imageFile" src="./img/ionic.png" width="100px" height="100px"/> <button ng-click="openCamera()">openCamera</button> </ion-content>
</ion-view>

在controllers.js中修改“DashCtrl”这个controller:

angular.module('starter.controllers', [])

.controller('DashCtrl', function($scope, $cordovaCamera) {

  document.addEventListener("deviceready", function () {

    var options = {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
allowEdit: true,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 100,
targetHeight: 100,
popoverOptions: CameraPopoverOptions,
saveToPhotoAlbum: false,
correctOrientation:true
}; $scope.openCamera= function(){
$cordovaCamera.getPicture(options).then(function(imageData) {
var image = document.getElementById('imageFile');
image.src = "data:image/jpeg;base64," + imageData;
}, function(err) {
// error
}); }, false;
})
})

注意,在app.js记得注入’ngCordova’:

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services','ngCordova'])

实际演示效果跟上一讲中使用cordova插件没有太大的区别,就不贴图了。

在上面的代码中,我们关于插件的使用都是在

document.addEventListener("deviceready", function () {})

中进行的,这也即我们在上面讲的通过deviceready event包装每个插件的调用

通过对比可以发现,我们的controller中的代码比上一讲中直接使用cordova简单了许多而且更符合我们AngularJs的代码的编写。

所以我还是建议使用ngCordova进行插件的使用,当然是那些已经封装好的。自定义插件是另外一回事。

ionic ngCordova插件安装的更多相关文章

  1. ngCordova插件安装使用

    为什么ngCordova ngCordova是在Cordova Api基础上封装的一系列开源的AngularJs服务和扩展,让开发者可以方便的在HybridApp开发中调用设备能力,即可以在Angul ...

  2. npm 安装卸载模块 & ionic插件安装与卸载

    npm安装模块 npm install xxx利用 npm 安装xxx模块到当前命令行所在目录 npm install -g xxx利用npm安装全局模块xxx 本地安装时将模块写入package.j ...

  3. ionic cordova plugin 安装和使用

    注意事项 ionic1需要ng-cordova plugin的使用都需要放到deviceready事件的回调中, 设备准备好了才能设备交互 plugin只有在真机上才有效果, 模拟器(部分)和brow ...

  4. ionic ngcordova camera

    拍照是經常用到的,所以記錄一下 拍照的代碼... 1. ionic start camera blankcd camera ionic platform add ios 2. 添加插件,這裏很熟悉.. ...

  5. [Android Studio]SQLScout插件安装破解

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5972138.html [Android Studio]SQLS ...

  6. elasticsearch5.0及head插件安装

        这个瞎jb整了半天.准备把es2.4升级到5.0,结果老报错 环境:centos6.5+es2.4是ok的换成es5就出毛病.也不能说啥 ,我用的是最新的 源码解压启动时候报错,具体错误for ...

  7. subtext3插件安装

    1.启用Package Control,利用它进行插件安装: 启用方法:菜单栏-view-show console 在弹出的输入框内,输入以下代码,按回车,稍后会出现package control安装 ...

  8. Ionic 常用插件

    ionic扩展插件 1.ionic-timepicker 时间选择 https://github.com/rajeshwarpatlolla/ionic-timepicker   2.ionic-da ...

  9. webapp应用---cordova.js 3.7.0插件安装总结

    今天是2014年的最后一天,年终总结什么的就不写了.记录一下今天的工作内容.如果不知道phoneGap,那么就不需要往下看了,phoneGap现在已经叫cordova了,叫什么不重要,重要的是它对we ...

随机推荐

  1. tomcat部署https+TLS 1.2+Apple ATS支持

    因为苹果ATS的要求, tomcat服务器要求上https+TLS1.2, 前面搞定了https,但是tls一直是1.0, 甚至把跑了一年的服务器重启了, 不解决问题. 思路如下: 1. 将openJ ...

  2. BigDecimal使用中的坑

    1.BigeDecimal调用divide时一定要记得规定小数位数的保留情况,不然除不尽的时候报错. 2.使用该种BigeDecimal时,加减乘除都要使用它内部封装好的方法,不然容易报错.

  3. Hibernate 基础配置及常用功能(一)

    本来是想等全部框架测试完以后再统一发布的,但是随着测试的一点点增加感觉把需要叙述的东西放在一起终将会是一场灾难.所以还是打算分成几章来描述,其中还包括一些有待解决的问题.短期很难腾出时间来仔细阅读Hi ...

  4. Linux中profile、bashrc、bash_profile之间的区别和联系

    /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. 英文描述为: # /etc/pr ...

  5. 2 . Linux常见命令

    Linux常见命令格式: 命令名称 选项 参数 ls -alh 文件/目录 --all #ls 显示当前目录内容 #ls -l 显示文件详细信息 #ls -hl h已常见单位显示文件大小 k M G# ...

  6. 分表的一个记录---Ruby

    sql1=" UPDATE user_red_info_"sql2=" SET status = '#{status}', update_time = '#{update ...

  7. SuiteScript > Apply script to Assembly and Kit

    Path: Customization > Scripting > Scripts > New Limitation: Client script can't apply to As ...

  8. vpsmate安装

    安装需求 操作系统:CentOS/Redhat 5.4 或 5.4 以上版本,32位或64位均可,推荐使用 CentOS 6.2 64位. 内存大小:运行时占用约 20MB 左右的服务器内存. 请使用 ...

  9. C#自定义大小与改变大下的方法

    在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...

  10. mysql 范式和反范式

    第一范式(1NF)强调的是列的原子性,即列不能够再分成其他几列. 第二范式(2NF) 首先是 2NF,另外包含两部分内容一是表必须有一个主键:二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于 ...