- 离子基础教程
- 离子 - 主页
- 离子 - 概述
- Ionic - 环境设置
- Ionic CSS 组件
- 离子 - 颜色
- 离子 - 内容
- 离子 - 标头
- 离子 - 页脚
- 离子 - 按钮
- Ionic - 列表
- 离子 - 卡片
- 离子 - 形式
- 离子 - 切换
- Ionic - 复选框
- Ionic - 单选按钮
- 离子 - 范围
- 离子 - 选择
- Ionic - 选项卡
- 离子 - 网格
- 离子 - 图标
- 离子 - 填充
- Ionic JavaScript 组件
- Ionic - JS 操作表
- Ionic - JS 背景
- Ionic - JS 内容
- Ionic - JS 表单
- Ionic - JS 事件
- Ionic - JS 标头
- Ionic - JS 页脚
- Ionic - JS 键盘
- Ionic - JS 列表
- Ionic - JS 加载
- Ionic - JS 模态
- Ionic - JS 导航
- Ionic - JS 弹出窗口
- Ionic - JS 弹出窗口
- Ionic - JS 滚动
- Ionic - JS 侧边菜单
- Ionic - JS 幻灯片盒
- Ionic - JS 选项卡
- 离子先进概念
- Ionic - Cordova 集成
- 离子 - AdMob
- 离子 - 相机
- 离子 - Facebook
- Ionic - 在应用程序浏览器中
- Ionic - 原生音频
- 离子 - 地理定位
- 离子 - 媒体
- Ionic - 启动画面
- 离子有用资源
- 离子 - 快速指南
- 离子 - 有用的资源
- 离子 - 讨论
Ionic - Cordova 相机
Cordova 相机插件使用本机相机拍照或从图库中获取图像。
使用相机
在命令提示符中打开项目根文件夹,然后使用以下命令下载并安装 Cordova 相机插件。
C:\Users\Username\Desktop\MyApp> cordova plugin add org.apache.cordova.camera
现在,我们将创建一个使用相机插件的服务。我们将使用AngularJS 工厂和需要注入到工厂的Promise 对象$q 。
services.js 代码
.factory('Camera', function($q) {
return {
getPicture: function(options) {
var q = $q.defer();
navigator.camera.getPicture(function(result) {
q.resolve(result);
}, function(err) {
q.reject(err);
}, options);
return q.promise;
}
}
});
要在应用程序中使用此服务,我们需要将其作为依赖项注入到控制器中。Cordova相机API提供了getPicture方法,用于使用本机相机拍照。
可以通过将options参数传递给takePicture函数来额外自定义本机相机设置。将上述代码示例复制到您的控制器以触发此Behave。它将打开相机应用程序并返回带有图像数据的成功回调函数或带有错误消息的错误回调函数。我们还需要两个按钮来调用我们将要创建的函数,并且我们需要在屏幕上显示图像。
HTML 代码
<button class = "button" ng-click = "takePicture()">Take Picture</button>
<button class = "button" ng-click = "getPicture()">Open Gallery</button>
<img ng-src = "{{user.picture}}">
控制器代码
.controller('MyCtrl', function($scope, Camera) {
$scope.takePicture = function (options) {
var options = {
quality : 75,
targetWidth: 200,
targetHeight: 200,
sourceType: 1
};
Camera.getPicture(options).then(function(imageData) {
$scope.picture = imageData;;
}, function(err) {
console.log(err);
});
};
})
输出将如以下屏幕截图所示。
如果您想使用图库中的图像,唯一需要更改的是选项参数中的sourceType方法。此更改将打开一个弹出对话框而不是相机,并允许您从设备中选择所需的图像。
您可以看到以下代码,其中sourceType选项更改为0。现在,当您点击第二个按钮时,它将从设备中打开文件菜单。
控制器代码
.controller('MyCtrl', function($scope, Camera) {
$scope.getPicture = function (options) {
var options = {
quality : 75,
targetWidth: 200,
targetHeight: 200,
sourceType: 0
};
Camera.getPicture(options).then(function(imageData) {
$scope.picture = imageData;;
}, function(err) {
console.log(err);
});
};
})
输出将如以下屏幕截图所示。
当您保存拍摄的图像时,它将出现在屏幕上。您可以按照您想要的方式设计它。
还可以使用其他几个选项,下表给出了其中一些选项。
| 范围 | 类型 | 细节 |
|---|---|---|
| 质量 | 数字 | 图像质量,范围0-100 |
| 目的地类型 | 数字 | 图像的格式。 |
| 源类型 | 数字 | 用于设置图片来源。 |
| 允许编辑 | 布尔值 | 用于允许编辑图像。 |
| 编码类型 | 数字 | 值 0 将设置 JPEG,值 1 将设置 PNG。 |
| 目标宽度 | 数字 | 用于缩放图像宽度。 |
| 目标高度 | 数字 | 用于缩放图像高度。 |
| 媒体类型 | 细绳 | 用于设置媒体类型。 |
| 相机方向 | 数字 | 值 0 将设置后置摄像头,值 1 将设置前置摄像头。 |
| 弹出选项 | 细绳 | 仅限 IOS 的选项,用于指定 iPad 中的弹出窗口位置。 |
| 保存到相册 | 布尔值 | 用于将图像保存到相册。 |
| 正确方向 | 布尔值 | 用于校正拍摄图像的方向。 |