This commit is contained in:
hayu 2025-07-31 10:46:23 +08:00
parent e2df00a1b6
commit d9e2266692
4 changed files with 1174 additions and 536 deletions

View File

@ -135,14 +135,7 @@ export default {
//
startCamera() {
if (typeof window.CameraPreview === 'undefined') {
uni.showToast({
title: '相机插件未安装',
icon: 'none'
});
return;
}
document.addEventListener('deviceready', () => {
window.CameraPreview.startCamera(
this.cameraPreviewOptions,
() => {
@ -156,7 +149,8 @@ export default {
icon: 'none'
});
}
);
)
})
},
//

View File

@ -1,79 +1,118 @@
<template>
<view class="page-container">
<view class="table-list-item">
<view class="scan-btn" @click="openCustomCamera">
<text style="color: #FFF;">开始识别</text>
<!-- 设备搜索页面 -->
<view v-if="!showCamera">
<view class="table-list-item">
<view class="scan-btn" @click="openCamera">
<text style="color: #FFF;">开始识别</text>
</view>
</view>
<view class="table-list-item">
<uni-row :gutter="24" style="display: flex; align-items: center">
<uni-col :span="6">
<text>设备编码</text>
</uni-col>
<uni-col :span="10">
<view>
<uni-easyinput v-model="queryCodeParams.maCode" placeholder="请输入内容" />
</view>
</uni-col>
<uni-col :span="6">
<view class="coding-btn" @click="getCode()">
<text style="color: #fe9a09;text-align: center;">编码检索</text>
</view>
</uni-col>
</uni-row>
<div v-if="optionList.length > 1" class="select-container">
<uni-data-select
v-model="queryCodeParams.maId"
:localdata="optionList"
@change="changeTag"
placeholder="请选择相关联编号"
class="data-select"
:searchable="false"
></uni-data-select>
</div>
</view>
<view class="table-list-item">
<uni-forms :model="codeData" label-width="100" :border="true">
<uni-forms-item label="物资名称:" name="materialType">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialType }}</text>
</uni-forms-item>
<uni-forms-item label="物资类型:" name="materialName">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialName }}</text>
</uni-forms-item>
<uni-forms-item label="规格型号:" name="materialModel">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialModel }}</text>
</uni-forms-item>
<uni-forms-item label="设备编码:" name="maCode">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.maCode }}</text>
</uni-forms-item>
<uni-forms-item label="检验结论:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.statusName }}</text>
</uni-forms-item>
<uni-forms-item label="本次检修时间:" name="inspectionTime">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.inspectionTime }}</text>
</uni-forms-item>
<uni-forms-item label="下次检修时间:" name="nextInspectionTime">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.nextInspectionTime }}</text>
</uni-forms-item>
<uni-forms-item label="检修员:" name="inspectionPerson">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.inspectionPerson }}</text>
</uni-forms-item>
<uni-forms-item label="检验员:" name="inspectionVerifier">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.inspectionVerifier }}</text>
</uni-forms-item>
<uni-forms-item label="联系电话:" name="contactNumber">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.contactNumber }}</text>
</uni-forms-item>
<uni-forms-item label="领料工程:" name="materialProject">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialProject }}</text>
</uni-forms-item>
<uni-forms-item label="领料单位:" name="materialUnit">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialUnit }}</text>
</uni-forms-item>
</uni-forms>
</view>
</view>
<view class="table-list-item">
<uni-row :gutter="24" style="display: flex; align-items: center">
<uni-col :span="6">
<text>设备编码</text>
</uni-col>
<uni-col :span="10">
<view>
<uni-easyinput v-model="queryCodeParams.maCode" placeholder="请输入内容" />
</view>
</uni-col>
<uni-col :span="6">
<view class="coding-btn" style="padding: 10rpx 0;color: #fe9a09;background-color: #fff7eb;border: 1px solid #fe9a09;"
@click="getCode()">
<text style="color: #fe9a09;text-align: center;">编码检索</text>
</view>
</uni-col>
</uni-row>
<div v-if="optionList.length > 1" class="select-container">
<uni-data-select
v-model="queryCodeParams.maId"
:localdata="optionList"
@change="changeTag"
placeholder="请选择相关联编号"
class="data-select"
:searchable="false"
></uni-data-select>
</div>
</view>
<!-- 相机预览页面 -->
<view v-if="showCamera" class="camera-container">
<!-- 顶部提示 -->
<view class="top-tip">
<text class="tip-text">请将识别编码置于取景框内,完成扫描</text>
</view>
<view class="table-list-item">
<uni-forms :model="codeData" label-width="100" :border="true">
<uni-forms-item label="物资名称:" name="materialType">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialType }}</text>
</uni-forms-item>
<uni-forms-item label="物资类型:" name="materialName">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialName }}</text>
</uni-forms-item>
<uni-forms-item label="规格型号:" name="materialModel">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.materialModel }}</text>
</uni-forms-item>
<uni-forms-item label="设备编码:" name="maCode">
<text style="height: 100%;display: flex;align-items: center;">{{ codeData.maCode }}</text>
</uni-forms-item>
<uni-forms-item label="检验结论:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="本次检修时间:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="下次检修时间:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="检修员:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="检验员:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="联系电话:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="领料工程:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
<uni-forms-item label="领料单位:" name="statusName">
<text style="height: 100%;display: flex;align-items: center;"></text>
</uni-forms-item>
</uni-forms>
<!-- 取景框 -->
<view class="viewfinder-container">
<view class="viewfinder">
<view class="corner corner-top-left"></view>
<view class="corner corner-top-right"></view>
<view class="corner corner-bottom-left"></view>
<view class="corner corner-bottom-right"></view>
</view>
</view>
<!-- 底部控制区 -->
<view class="bottom-controls">
<view class="control-btn" @click="closeCamera">
<text class="control-icon">✕</text>
</view>
<view class="photo-btn" @click="takePicture" :class="{ 'taking': isTaking }">
<view class="photo-btn-inner"></view>
</view>
<view class="control-btn" @click="openGallery">
<text class="control-icon">📷</text>
</view>
</view>
<!-- 加载提示 -->
<view v-if="isProcessing" class="loading-overlay">
<view class="loading-content">
<view class="loading-spinner"></view>
<text class="loading-text">正在识别中...</text>
</view>
</view>
</view>
</view>
</template>
@ -83,6 +122,10 @@
export default {
data() {
return {
showCamera: false,
isTaking: false,
isProcessing: false,
cameraStarted: false,
queryParams: {},
queryCodeParams: {
maCode: "",
@ -101,104 +144,337 @@ export default {
onUnload() {
// 移除事件监听
uni.$off('ocrResult', this.handleOcrResult);
// 确保相机被停止
this.stopCamera();
},
methods: {
// 打开自定义相机页面
openCustomCamera() {
uni.navigateTo({
url: '/pages/devicesSearch/camera'
// 检查相机权限
async checkCameraPermission() {
return new Promise((resolve, reject) => {
// 在 App 端检查相机权限
// #ifdef APP-PLUS
plus.android.requestPermissions(
['android.permission.CAMERA'],
(result) => {
if (result.granted && result.granted.length > 0) {
resolve(true);
} else {
reject(new Error('相机权限被拒绝'));
}
},
(error) => {
reject(new Error('权限检查失败'));
}
);
// #endif
// #ifndef APP-PLUS
resolve(true); // 其他平台默认有权限
// #endif
});
},
// 处理OCR识别结果
handleOcrResult(result) {
if (result.success && result.result) {
this.queryCodeParams.maCode = result.result;
// 打开相机
async openCamera() {
try {
// 检查权限
await this.checkCameraPermission();
// 显示相机界面
this.showCamera = true;
// 等待DOM更新后初始化相机
await this.$nextTick();
await this.initCamera();
} catch (error) {
console.error('打开相机失败:', error);
uni.showToast({
title: '识别成功',
icon: 'success'
title: error.message || '相机启动失败',
icon: 'none'
});
this.showCamera = false;
}
},
// 初始化相机
async initCamera() {
return new Promise((resolve, reject) => {
// 检查插件是否可用
if (!window.CameraPreview) {
reject(new Error('相机插件未加载'));
return;
}
const options = {
x: 0,
y: 0,
width: window.innerWidth || 375,
height: window.innerHeight || 667,
camera: 'rear', // 后置摄像头
tapPhoto: false,
previewDrag: false,
toBack: true, // 将预览放到背景
alpha: 1,
colorEffect: 'none'
};
window.CameraPreview.startCamera(
options,
() => {
console.log('相机启动成功');
this.cameraStarted = true;
resolve();
},
(error) => {
console.error('相机启动失败:', error);
reject(new Error('相机启动失败: ' + error));
}
);
});
},
// 关闭相机
async closeCamera() {
try {
await this.stopCamera();
} catch (error) {
console.error('关闭相机出错:', error);
} finally {
this.showCamera = false;
this.cameraStarted = false;
}
},
// 停止相机
async stopCamera() {
if (!this.cameraStarted || !window.CameraPreview) {
return Promise.resolve();
}
return new Promise((resolve) => {
window.CameraPreview.stopCamera(
() => {
console.log('相机已停止');
this.cameraStarted = false;
resolve();
},
(error) => {
console.error('停止相机失败:', error);
this.cameraStarted = false;
resolve(); // 即使失败也继续
}
);
});
},
// 拍照
async takePicture() {
if (!this.cameraStarted || this.isTaking) {
return;
}
this.isTaking = true;
try {
const imageData = await new Promise((resolve, reject) => {
const options = {
quality: 85,
targetHeight: 1920,
targetWidth: 1080
};
window.CameraPreview.takePicture(
options,
(imageData) => {
resolve(imageData);
},
(error) => {
reject(new Error('拍照失败: ' + error));
}
);
});
// 自动执行编码检索
this.$nextTick(() => {
this.getCode();
});
} else {
await this.processImage(imageData);
} catch (error) {
console.error('拍照失败:', error);
uni.showToast({
title: '识别失败',
title: error.message || '拍照失败',
icon: 'none'
});
} finally {
this.isTaking = false;
}
},
// 处理图片
async processImage(imageData) {
this.isProcessing = true;
try {
const response = await new Promise((resolve, reject) => {
uni.request({
url: '/material/app/ocr/getOcrCode',
method: 'POST',
data: {
image: imageData,
jiju_type: '',
auth_lic: 'xIWDlaDVdijcBB4mjhGCPYk5Kvk8tHZJbUn+vW+ih15+MYx98e/PXyBmKL5gFcWMPznLgDA15QuSAnZQSLddwdy9HkZgtuQDEEZZ351Eyb1eiDUccUnyoSGIrNimbx5TooBNNPYqU4qJeFrPJXAqjBHzRrxoBxuR2CEGKQPgHC4='
},
timeout: 30000, // 30秒超时
success: resolve,
fail: reject
});
});
if (response.data?.data?.result) {
this.queryCodeParams.maCode = response.data.data.result;
await this.closeCamera();
this.getCode();
uni.showToast({
title: '识别成功',
icon: 'success'
});
} else {
uni.showToast({
title: '未识别到有效编码',
icon: 'none'
});
}
} catch (error) {
console.error('OCR识别失败:', error);
uni.showToast({
title: '识别失败,请重试',
icon: 'none'
});
} finally {
this.isProcessing = false;
}
},
// 打开相册
openGallery() {
uni.chooseImage({
count: 1,
sourceType: ['album'],
success: (res) => {
if (res.tempFilePaths && res.tempFilePaths.length > 0) {
// 将本地图片转换为base64
this.convertImageToBase64(res.tempFilePaths[0]);
}
},
fail: (error) => {
console.error('选择图片失败:', error);
uni.showToast({
title: '选择图片失败',
icon: 'none'
});
}
});
},
// 将图片转换为base64
convertImageToBase64(filePath) {
// #ifdef APP-PLUS
plus.io.resolveLocalFileSystemURL(filePath, (entry) => {
entry.file((file) => {
const reader = new plus.io.FileReader();
reader.onloadend = (e) => {
this.processImage(e.target.result);
};
reader.readAsDataURL(file);
});
});
// #endif
// #ifndef APP-PLUS
// 其他平台可以直接使用文件路径
this.processImage(filePath);
// #endif
},
// 编码检索
async getCode() {
if (!this.queryCodeParams.maCode.trim()) {
uni.showToast({
title: '请输入设备编码',
icon: 'none'
});
return;
}
try {
const response = await new Promise((resolve, reject) => {
uni.request({
url: '/material/ma_machine/getHisByCode',
method: 'GET',
data: {maCode: this.queryCodeParams.maCode},
success: resolve,
fail: reject
});
});
if (response.data?.data && response.data.data.length > 0) {
this.optionList = response.data.data.map(option => ({
value: option.maId,
text: option.maCode
}));
if (response.data.data.length === 1) {
this.codeData = response.data.data[0];
}
} else {
uni.showToast({
title: '未查询到该编号信息',
icon: 'none'
});
}
} catch (error) {
console.error('查询失败:', error);
uni.showToast({
title: '查询失败,请重试',
icon: 'none'
});
}
},
// 编码检索
async getCode() {
let param = {
maCode: this.queryCodeParams.maCode,
}
uni.request({
url: '/material/ma_machine/getHisByCode',
method: 'get',
data: param,
success: response => {
response = response.data;
if (response.data && response.data.length !== 0) {
this.optionList = response.data.map(option => ({
value: option.maId,
text: option.maCode
}))
if (response.data.length === 1) {
this.codeData = response.data[0]
}
} else {
uni.showToast({
title: '未查询到该编号信息',
icon: 'none',
duration: 2000
})
}
},
fail: err => {
console.log(err)
}
})
},
changeTag() {
if (!this.queryCodeParams.maId) return
// 标签改变
async changeTag() {
if (!this.queryCodeParams.maId) return;
try {
let param = {
maId: this.queryCodeParams.maId,
const response = await new Promise((resolve, reject) => {
uni.request({
url: '/material/ma_machine/getHisByCode',
method: 'GET',
data: {maId: this.queryCodeParams.maId},
success: resolve,
fail: reject
});
});
if (response.data?.data && response.data.data.length > 0) {
this.codeData = response.data.data[0];
} else {
uni.showToast({
title: '获取编号信息失败',
icon: 'none'
});
}
uni.request({
url: '/material/ma_machine/getHisByCode',
method: 'get',
data: param,
success: response => {
response = response.data;
if (response.data && response.data.length !== 0) {
this.codeData = response.data[0]
} else {
uni.showToast({
title: '获取编号信息失败',
icon: 'none',
duration: 2000
})
}
},
fail: err => {
console.log(err)
}
})
} catch (error) {
console.error("获取编号信息失败", error)
console.error("获取编号信息失败", error);
uni.showToast({
title: '获取信息失败',
icon: 'none',
duration: 2000
})
icon: 'none'
});
}
},
// 处理OCR结果
handleOcrResult(result) {
if (result && result.code) {
this.queryCodeParams.maCode = result.code;
this.getCode();
}
}
}
@ -222,64 +498,6 @@ export default {
margin-bottom: 24rpx;
}
.table-list-item :deep(.uni-forms) {
.uni-forms-item {
margin-bottom: 24rpx;
padding: 0;
}
.uni-forms-item:last-child {
margin-bottom: 0;
}
.uni-forms-item__label {
color: #8c8c8c;
font-size: 28rpx;
font-weight: 500;
padding: 0;
line-height: 1.8;
}
.uni-forms-item__content {
display: flex;
align-items: center;
min-height: unset;
}
}
.table-list-item :deep(.uni-row) {
.uni-col-6 {
color: #8c8c8c;
font-size: 28rpx;
font-weight: 500;
}
.cont {
color: #262626;
font-size: 28rpx;
font-weight: 500;
line-height: 1.8;
}
}
.table-list-item :deep(.uni-easyinput__content) {
background-color: #f7f8fa;
border: 2rpx solid #e8e8e8;
border-radius: 12rpx;
height: 75rpx;
transition: all 0.3s ease;
}
.table-list-item :deep(.uni-easyinput__content:focus-within) {
border-color: #3784fb;
box-shadow: 0 0 0 2rpx rgba(55, 132, 251, 0.1);
}
.table-list-item :deep(.uni-easyinput__content-input) {
font-size: 28rpx;
color: #262626;
}
.scan-btn {
height: 88rpx;
background: #4b8eff;
@ -290,29 +508,207 @@ export default {
font-size: 32rpx;
font-weight: 600;
box-shadow: 0 6rpx 20rpx rgba(55, 132, 251, 0.2);
margin: 0;
padding: 0;
}
.coding-btn {
background: #fff;
color: #ff9800;
border: 2rpx solid rgba(255, 152, 0, 0.5);
background: linear-gradient(to bottom, rgba(255, 152, 0, 0.05), rgba(255, 152, 0, 0.1));
padding: 10rpx 0;
color: #fe9a09;
background-color: #fff7eb;
border: 1px solid #fe9a09;
border-radius: 12rpx;
text-align: center;
font-size: 28rpx;
font-weight: 600;
letter-spacing: 1rpx;
}
.select-container {
margin-top: 24rpx;
/* 相机预览样式 */
.camera-container {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: #000;
z-index: 9999;
}
.data-select {
background-color: #f7f8fa;
border: 2rpx solid #e8e8e8;
border-radius: 12rpx;
.top-tip {
position: absolute;
top: 80rpx;
left: 50%;
transform: translateX(-50%);
z-index: 10;
width: 100%;
text-align: center;
}
.tip-text {
background-color: rgba(0, 0, 0, 0.7);
color: #fff;
font-size: 32rpx;
font-weight: bold;
padding: 20rpx 30rpx;
border-radius: 10rpx;
}
.viewfinder-container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 10;
}
.viewfinder {
position: relative;
width: 500rpx;
height: 600rpx;
border: 4rpx solid rgba(255, 255, 255, 0.5);
border-radius: 20rpx;
}
.corner {
position: absolute;
width: 60rpx;
height: 60rpx;
border: 6rpx solid #4b8eff;
}
.corner-top-left {
top: -6rpx;
left: -6rpx;
border-right: none;
border-bottom: none;
border-top-left-radius: 20rpx;
}
.corner-top-right {
top: -6rpx;
right: -6rpx;
border-left: none;
border-bottom: none;
border-top-right-radius: 20rpx;
}
.corner-bottom-left {
bottom: -6rpx;
left: -6rpx;
border-right: none;
border-top: none;
border-bottom-left-radius: 20rpx;
}
.corner-bottom-right {
bottom: -6rpx;
right: -6rpx;
border-left: none;
border-top: none;
border-bottom-right-radius: 20rpx;
}
.bottom-controls {
position: absolute;
bottom: 100rpx;
left: 0;
right: 0;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 0 100rpx;
z-index: 10;
}
.control-btn {
width: 100rpx;
height: 100rpx;
background-color: rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
border: 2rpx solid rgba(255, 255, 255, 0.3);
}
.control-icon {
color: #fff;
font-size: 40rpx;
font-weight: bold;
}
.photo-btn {
width: 140rpx;
height: 140rpx;
background-color: rgba(255, 255, 255, 0.2);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
border: 6rpx solid #fff;
transition: all 0.2s ease;
}
.photo-btn.taking {
transform: scale(0.9);
background-color: rgba(75, 142, 255, 0.8);
}
.photo-btn-inner {
width: 100rpx;
height: 100rpx;
background-color: #fff;
border-radius: 50%;
transition: all 0.2s ease;
}
.photo-btn.taking .photo-btn-inner {
background-color: #4b8eff;
}
.loading-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.7);
display: flex;
justify-content: center;
align-items: center;
z-index: 20;
}
.loading-content {
display: flex;
flex-direction: column;
align-items: center;
background-color: rgba(255, 255, 255, 0.9);
padding: 60rpx;
border-radius: 20rpx;
}
.loading-spinner {
width: 60rpx;
height: 60rpx;
border: 6rpx solid #f3f3f3;
border-top: 6rpx solid #4b8eff;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 30rpx;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.loading-text {
color: #333;
font-size: 32rpx;
font-weight: bold;
}
</style>

View File

@ -1,415 +1,323 @@
cordova.define('cordova/plugin_list', function(require, exports, module) {
cordova.define("cordova/plugin_list", function (require, exports, module) {
module.exports = [
{
"id": "cordova-plugin-battery-status.battery",
"file": "plugins/cordova-plugin-battery-status/www/battery.js",
"pluginId": "cordova-plugin-battery-status",
"clobbers": [
"navigator.battery"
]
id: "cordova-plugin-battery-status.battery",
file: "plugins/cordova-plugin-battery-status/www/battery.js",
pluginId: "cordova-plugin-battery-status",
clobbers: ["navigator.battery"],
},
{
"id": "cordova-plugin-camera.Camera",
"file": "plugins/cordova-plugin-camera/www/CameraConstants.js",
"pluginId": "cordova-plugin-camera",
"clobbers": [
"Camera"
]
id: "cordova-plugin-camera.Camera",
file: "plugins/cordova-plugin-camera/www/CameraConstants.js",
pluginId: "cordova-plugin-camera",
clobbers: ["Camera"],
},
{
"id": "cordova-plugin-camera.CameraPopoverOptions",
"file": "plugins/cordova-plugin-camera/www/CameraPopoverOptions.js",
"pluginId": "cordova-plugin-camera",
"clobbers": [
"CameraPopoverOptions"
]
id: "cordova-plugin-camera.CameraPopoverOptions",
file: "plugins/cordova-plugin-camera/www/CameraPopoverOptions.js",
pluginId: "cordova-plugin-camera",
clobbers: ["CameraPopoverOptions"],
},
{
"id": "cordova-plugin-camera.camera",
"file": "plugins/cordova-plugin-camera/www/Camera.js",
"pluginId": "cordova-plugin-camera",
"clobbers": [
"navigator.camera"
]
id: "cordova-plugin-camera.camera",
file: "plugins/cordova-plugin-camera/www/Camera.js",
pluginId: "cordova-plugin-camera",
clobbers: ["navigator.camera"],
},
{
"id": "cordova-plugin-camera.CameraPopoverHandle",
"file": "plugins/cordova-plugin-camera/www/ios/CameraPopoverHandle.js",
"pluginId": "cordova-plugin-camera",
"clobbers": [
"CameraPopoverHandle"
]
id: "cordova-plugin-camera.CameraPopoverHandle",
file: "plugins/cordova-plugin-camera/www/ios/CameraPopoverHandle.js",
pluginId: "cordova-plugin-camera",
clobbers: ["CameraPopoverHandle"],
},
{
"id": "cordova-plugin-device.device",
"file": "plugins/cordova-plugin-device/www/device.js",
"pluginId": "cordova-plugin-device",
"clobbers": [
"device"
]
id: "cordova-plugin-device.device",
file: "plugins/cordova-plugin-device/www/device.js",
pluginId: "cordova-plugin-device",
clobbers: ["device"],
},
{
"id": "cordova-plugin-dialogs.notification",
"file": "plugins/cordova-plugin-dialogs/www/notification.js",
"pluginId": "cordova-plugin-dialogs",
"merges": [
"navigator.notification"
]
id: "cordova-plugin-dialogs.notification",
file: "plugins/cordova-plugin-dialogs/www/notification.js",
pluginId: "cordova-plugin-dialogs",
merges: ["navigator.notification"],
},
{
"id": "cordova-plugin-file.DirectoryEntry",
"file": "plugins/cordova-plugin-file/www/DirectoryEntry.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.DirectoryEntry"
]
id: "cordova-plugin-file.DirectoryEntry",
file: "plugins/cordova-plugin-file/www/DirectoryEntry.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.DirectoryEntry"],
},
{
"id": "cordova-plugin-file.DirectoryReader",
"file": "plugins/cordova-plugin-file/www/DirectoryReader.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.DirectoryReader"
]
id: "cordova-plugin-file.DirectoryReader",
file: "plugins/cordova-plugin-file/www/DirectoryReader.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.DirectoryReader"],
},
{
"id": "cordova-plugin-file.Entry",
"file": "plugins/cordova-plugin-file/www/Entry.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.Entry"
]
id: "cordova-plugin-file.Entry",
file: "plugins/cordova-plugin-file/www/Entry.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.Entry"],
},
{
"id": "cordova-plugin-file.File",
"file": "plugins/cordova-plugin-file/www/File.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.File"
]
id: "cordova-plugin-file.File",
file: "plugins/cordova-plugin-file/www/File.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.File"],
},
{
"id": "cordova-plugin-file.FileEntry",
"file": "plugins/cordova-plugin-file/www/FileEntry.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileEntry"
]
id: "cordova-plugin-file.FileEntry",
file: "plugins/cordova-plugin-file/www/FileEntry.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileEntry"],
},
{
"id": "cordova-plugin-file.FileError",
"file": "plugins/cordova-plugin-file/www/FileError.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileError"
]
id: "cordova-plugin-file.FileError",
file: "plugins/cordova-plugin-file/www/FileError.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileError"],
},
{
"id": "cordova-plugin-file.FileReader",
"file": "plugins/cordova-plugin-file/www/FileReader.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileReader"
]
id: "cordova-plugin-file.FileReader",
file: "plugins/cordova-plugin-file/www/FileReader.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileReader"],
},
{
"id": "cordova-plugin-file.FileSystem",
"file": "plugins/cordova-plugin-file/www/FileSystem.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileSystem"
]
id: "cordova-plugin-file.FileSystem",
file: "plugins/cordova-plugin-file/www/FileSystem.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileSystem"],
},
{
"id": "cordova-plugin-file.FileUploadOptions",
"file": "plugins/cordova-plugin-file/www/FileUploadOptions.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileUploadOptions"
]
id: "cordova-plugin-file.FileUploadOptions",
file: "plugins/cordova-plugin-file/www/FileUploadOptions.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileUploadOptions"],
},
{
"id": "cordova-plugin-file.FileUploadResult",
"file": "plugins/cordova-plugin-file/www/FileUploadResult.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileUploadResult"
]
id: "cordova-plugin-file.FileUploadResult",
file: "plugins/cordova-plugin-file/www/FileUploadResult.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileUploadResult"],
},
{
"id": "cordova-plugin-file.FileWriter",
"file": "plugins/cordova-plugin-file/www/FileWriter.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.FileWriter"
]
id: "cordova-plugin-file.FileWriter",
file: "plugins/cordova-plugin-file/www/FileWriter.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.FileWriter"],
},
{
"id": "cordova-plugin-file.Flags",
"file": "plugins/cordova-plugin-file/www/Flags.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.Flags"
]
id: "cordova-plugin-file.Flags",
file: "plugins/cordova-plugin-file/www/Flags.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.Flags"],
},
{
"id": "cordova-plugin-file.LocalFileSystem",
"file": "plugins/cordova-plugin-file/www/LocalFileSystem.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.LocalFileSystem"
],
"merges": [
"window"
]
id: "cordova-plugin-file.LocalFileSystem",
file: "plugins/cordova-plugin-file/www/LocalFileSystem.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.LocalFileSystem"],
merges: ["window"],
},
{
"id": "cordova-plugin-file.Metadata",
"file": "plugins/cordova-plugin-file/www/Metadata.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.Metadata"
]
id: "cordova-plugin-file.Metadata",
file: "plugins/cordova-plugin-file/www/Metadata.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.Metadata"],
},
{
"id": "cordova-plugin-file.ProgressEvent",
"file": "plugins/cordova-plugin-file/www/ProgressEvent.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.ProgressEvent"
]
id: "cordova-plugin-file.ProgressEvent",
file: "plugins/cordova-plugin-file/www/ProgressEvent.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.ProgressEvent"],
},
{
"id": "cordova-plugin-file.fileSystems",
"file": "plugins/cordova-plugin-file/www/fileSystems.js",
"pluginId": "cordova-plugin-file"
id: "cordova-plugin-file.fileSystems",
file: "plugins/cordova-plugin-file/www/fileSystems.js",
pluginId: "cordova-plugin-file",
},
{
"id": "cordova-plugin-file.requestFileSystem",
"file": "plugins/cordova-plugin-file/www/requestFileSystem.js",
"pluginId": "cordova-plugin-file",
"clobbers": [
"window.requestFileSystem"
]
id: "cordova-plugin-file.requestFileSystem",
file: "plugins/cordova-plugin-file/www/requestFileSystem.js",
pluginId: "cordova-plugin-file",
clobbers: ["window.requestFileSystem"],
},
{
"id": "cordova-plugin-file.resolveLocalFileSystemURI",
"file": "plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js",
"pluginId": "cordova-plugin-file",
"merges": [
"window"
]
id: "cordova-plugin-file.resolveLocalFileSystemURI",
file: "plugins/cordova-plugin-file/www/resolveLocalFileSystemURI.js",
pluginId: "cordova-plugin-file",
merges: ["window"],
},
{
"id": "cordova-plugin-file.isChrome",
"file": "plugins/cordova-plugin-file/www/browser/isChrome.js",
"pluginId": "cordova-plugin-file",
"runs": true
id: "cordova-plugin-file.isChrome",
file: "plugins/cordova-plugin-file/www/browser/isChrome.js",
pluginId: "cordova-plugin-file",
runs: true,
},
{
"id": "cordova-plugin-file.iosFileSystem",
"file": "plugins/cordova-plugin-file/www/ios/FileSystem.js",
"pluginId": "cordova-plugin-file",
"merges": [
"FileSystem"
]
id: "cordova-plugin-file.iosFileSystem",
file: "plugins/cordova-plugin-file/www/ios/FileSystem.js",
pluginId: "cordova-plugin-file",
merges: ["FileSystem"],
},
{
"id": "cordova-plugin-file.fileSystems-roots",
"file": "plugins/cordova-plugin-file/www/fileSystems-roots.js",
"pluginId": "cordova-plugin-file",
"runs": true
id: "cordova-plugin-file.fileSystems-roots",
file: "plugins/cordova-plugin-file/www/fileSystems-roots.js",
pluginId: "cordova-plugin-file",
runs: true,
},
{
"id": "cordova-plugin-file.fileSystemPaths",
"file": "plugins/cordova-plugin-file/www/fileSystemPaths.js",
"pluginId": "cordova-plugin-file",
"merges": [
"cordova"
],
"runs": true
id: "cordova-plugin-file.fileSystemPaths",
file: "plugins/cordova-plugin-file/www/fileSystemPaths.js",
pluginId: "cordova-plugin-file",
merges: ["cordova"],
runs: true,
},
{
"id": "cordova-plugin-geolocation.Coordinates",
"file": "plugins/cordova-plugin-geolocation/www/Coordinates.js",
"pluginId": "cordova-plugin-geolocation",
"clobbers": [
"Coordinates"
]
id: "cordova-plugin-geolocation.Coordinates",
file: "plugins/cordova-plugin-geolocation/www/Coordinates.js",
pluginId: "cordova-plugin-geolocation",
clobbers: ["Coordinates"],
},
{
"id": "cordova-plugin-geolocation.PositionError",
"file": "plugins/cordova-plugin-geolocation/www/PositionError.js",
"pluginId": "cordova-plugin-geolocation",
"clobbers": [
"PositionError"
]
id: "cordova-plugin-geolocation.PositionError",
file: "plugins/cordova-plugin-geolocation/www/PositionError.js",
pluginId: "cordova-plugin-geolocation",
clobbers: ["PositionError"],
},
{
"id": "cordova-plugin-geolocation.Position",
"file": "plugins/cordova-plugin-geolocation/www/Position.js",
"pluginId": "cordova-plugin-geolocation",
"clobbers": [
"Position"
]
id: "cordova-plugin-geolocation.Position",
file: "plugins/cordova-plugin-geolocation/www/Position.js",
pluginId: "cordova-plugin-geolocation",
clobbers: ["Position"],
},
{
"id": "cordova-plugin-geolocation.geolocation",
"file": "plugins/cordova-plugin-geolocation/www/geolocation.js",
"pluginId": "cordova-plugin-geolocation",
"clobbers": [
"navigator.geolocation"
]
id: "cordova-plugin-geolocation.geolocation",
file: "plugins/cordova-plugin-geolocation/www/geolocation.js",
pluginId: "cordova-plugin-geolocation",
clobbers: ["navigator.geolocation"],
},
{
"id": "cordova-plugin-inappbrowser.inappbrowser",
"file": "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
"pluginId": "cordova-plugin-inappbrowser",
"clobbers": [
"cordova.InAppBrowser.open"
]
id: "cordova-plugin-inappbrowser.inappbrowser",
file: "plugins/cordova-plugin-inappbrowser/www/inappbrowser.js",
pluginId: "cordova-plugin-inappbrowser",
clobbers: ["cordova.InAppBrowser.open"],
},
{
"id": "cordova-plugin-media.MediaError",
"file": "plugins/cordova-plugin-media/www/MediaError.js",
"pluginId": "cordova-plugin-media",
"clobbers": [
"window.MediaError"
]
id: "cordova-plugin-media.MediaError",
file: "plugins/cordova-plugin-media/www/MediaError.js",
pluginId: "cordova-plugin-media",
clobbers: ["window.MediaError"],
},
{
"id": "cordova-plugin-media.Media",
"file": "plugins/cordova-plugin-media/www/Media.js",
"pluginId": "cordova-plugin-media",
"clobbers": [
"window.Media"
]
id: "cordova-plugin-media.Media",
file: "plugins/cordova-plugin-media/www/Media.js",
pluginId: "cordova-plugin-media",
clobbers: ["window.Media"],
},
{
"id": "cordova-plugin-media-capture.CaptureAudioOptions",
"file": "plugins/cordova-plugin-media-capture/www/CaptureAudioOptions.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"CaptureAudioOptions"
]
id: "cordova-plugin-media-capture.CaptureAudioOptions",
file: "plugins/cordova-plugin-media-capture/www/CaptureAudioOptions.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["CaptureAudioOptions"],
},
{
"id": "cordova-plugin-media-capture.CaptureImageOptions",
"file": "plugins/cordova-plugin-media-capture/www/CaptureImageOptions.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"CaptureImageOptions"
]
id: "cordova-plugin-media-capture.CaptureImageOptions",
file: "plugins/cordova-plugin-media-capture/www/CaptureImageOptions.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["CaptureImageOptions"],
},
{
"id": "cordova-plugin-media-capture.CaptureVideoOptions",
"file": "plugins/cordova-plugin-media-capture/www/CaptureVideoOptions.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"CaptureVideoOptions"
]
id: "cordova-plugin-media-capture.CaptureVideoOptions",
file: "plugins/cordova-plugin-media-capture/www/CaptureVideoOptions.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["CaptureVideoOptions"],
},
{
"id": "cordova-plugin-media-capture.CaptureError",
"file": "plugins/cordova-plugin-media-capture/www/CaptureError.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"CaptureError"
]
id: "cordova-plugin-media-capture.CaptureError",
file: "plugins/cordova-plugin-media-capture/www/CaptureError.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["CaptureError"],
},
{
"id": "cordova-plugin-media-capture.MediaFileData",
"file": "plugins/cordova-plugin-media-capture/www/MediaFileData.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"MediaFileData"
]
id: "cordova-plugin-media-capture.MediaFileData",
file: "plugins/cordova-plugin-media-capture/www/MediaFileData.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["MediaFileData"],
},
{
"id": "cordova-plugin-media-capture.MediaFile",
"file": "plugins/cordova-plugin-media-capture/www/MediaFile.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"MediaFile"
]
id: "cordova-plugin-media-capture.MediaFile",
file: "plugins/cordova-plugin-media-capture/www/MediaFile.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["MediaFile"],
},
{
"id": "cordova-plugin-media-capture.helpers",
"file": "plugins/cordova-plugin-media-capture/www/helpers.js",
"pluginId": "cordova-plugin-media-capture",
"runs": true
id: "cordova-plugin-media-capture.helpers",
file: "plugins/cordova-plugin-media-capture/www/helpers.js",
pluginId: "cordova-plugin-media-capture",
runs: true,
},
{
"id": "cordova-plugin-media-capture.capture",
"file": "plugins/cordova-plugin-media-capture/www/capture.js",
"pluginId": "cordova-plugin-media-capture",
"clobbers": [
"navigator.device.capture"
]
id: "cordova-plugin-media-capture.capture",
file: "plugins/cordova-plugin-media-capture/www/capture.js",
pluginId: "cordova-plugin-media-capture",
clobbers: ["navigator.device.capture"],
},
{
"id": "cordova-plugin-network-information.network",
"file": "plugins/cordova-plugin-network-information/www/network.js",
"pluginId": "cordova-plugin-network-information",
"clobbers": [
"navigator.connection"
]
id: "cordova-plugin-network-information.network",
file: "plugins/cordova-plugin-network-information/www/network.js",
pluginId: "cordova-plugin-network-information",
clobbers: ["navigator.connection"],
},
{
"id": "cordova-plugin-network-information.Connection",
"file": "plugins/cordova-plugin-network-information/www/Connection.js",
"pluginId": "cordova-plugin-network-information",
"clobbers": [
"Connection"
]
id: "cordova-plugin-network-information.Connection",
file: "plugins/cordova-plugin-network-information/www/Connection.js",
pluginId: "cordova-plugin-network-information",
clobbers: ["Connection"],
},
{
"id": "cordova-plugin-screen-orientation.screenorientation",
"file": "plugins/cordova-plugin-screen-orientation/www/screenorientation.js",
"pluginId": "cordova-plugin-screen-orientation",
"clobbers": [
"cordova.plugins.screenorientation"
]
id: "cordova-plugin-screen-orientation.screenorientation",
file: "plugins/cordova-plugin-screen-orientation/www/screenorientation.js",
pluginId: "cordova-plugin-screen-orientation",
clobbers: ["cordova.plugins.screenorientation"],
},
{
"id": "cordova-plugin-statusbar.statusbar",
"file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
"pluginId": "cordova-plugin-statusbar",
"clobbers": [
"window.StatusBar"
]
id: "cordova-plugin-statusbar.statusbar",
file: "plugins/cordova-plugin-statusbar/www/statusbar.js",
pluginId: "cordova-plugin-statusbar",
clobbers: ["window.StatusBar"],
},
{
"id": "cordova-plugin-vibration.notification",
"file": "plugins/cordova-plugin-vibration/www/vibration.js",
"pluginId": "cordova-plugin-vibration",
"merges": [
"navigator"
]
id: "cordova-plugin-vibration.notification",
file: "plugins/cordova-plugin-vibration/www/vibration.js",
pluginId: "cordova-plugin-vibration",
merges: ["navigator"],
},
{
"id": "cordova-plugin-security.security",
"file": "plugins/cordova-plugin-security/www/Security.js",
"pluginId": "cordova-plugin-security",
"merges": [
"navigator.security"
]
id: "cordova-plugin-security.security",
file: "plugins/cordova-plugin-security/www/Security.js",
pluginId: "cordova-plugin-security",
merges: ["navigator.security"],
},
{
"id": "phonegap-plugin-barcodescanner.BarcodeScanner",
"file": "plugins/phonegap-plugin-barcodescanner/www/barcodescanner.js",
"pluginId": "phonegap-plugin-barcodescanner",
"clobbers": [
"cordova.plugins.barcodeScanner"
]
id: "phonegap-plugin-barcodescanner.BarcodeScanner",
file: "plugins/phonegap-plugin-barcodescanner/www/barcodescanner.js",
pluginId: "phonegap-plugin-barcodescanner",
clobbers: ["cordova.plugins.barcodeScanner"],
},
{
"id": "cordova-plugin-zxing.Zxing",
"file": "plugins/cordova-plugin-zxing/www/scan.js",
"pluginId": "cordova-plugin-zxing",
"clobbers": [
"cordova.plugins.zxingScan"
]
id: "cordova-plugin-zxing.Zxing",
file: "plugins/cordova-plugin-zxing/www/scan.js",
pluginId: "cordova-plugin-zxing",
clobbers: ["cordova.plugins.zxingScan"],
},
{
id: "cordova-plugin-camera-preview.CameraPreview",
file: "plugins/cordova-plugin-camera-preview/www/CameraPreview.js",
pluginId: "cordova-plugin-camera-preview",
clobbers: ["CameraPreview"],
},
];
module.exports.metadata = {
@ -429,6 +337,7 @@ cordova.define('cordova/plugin_list', function(require, exports, module) {
"cordova-plugin-vibration": "3.1.1",
"cordova-plugin-security": "1.0.0",
"cordova.plugins.zxingScan": "1.0.0",
"phonegap-plugin-barcodescanner": "8.1.0"
"phonegap-plugin-barcodescanner": "8.1.0",
"cordova-plugin-camera-preview": "0.14.0",
};
});

View File

@ -0,0 +1,339 @@
cordova.define("cordova-plugin-camera-preview.CameraPreview", function(require, exports, module) {
var argscheck = require('cordova/argscheck'),
utils = require('cordova/utils'),
exec = require('cordova/exec');
var PLUGIN_NAME = "CameraPreview";
var CameraPreview = function() {};
function isFunction(obj) {
return !!(obj && obj.constructor && obj.call && obj.apply);
};
CameraPreview.startCamera = function(options, onSuccess, onError) {
if (!options) {
options = {};
} else if (isFunction(options)) {
onSuccess = options;
options = {};
}
options.x = options.x || 0;
options.y = options.y || 0;
options.width = options.width || window.screen.width;
options.height = options.height || window.screen.height;
options.camera = options.camera || CameraPreview.CAMERA_DIRECTION.FRONT;
if (typeof(options.tapPhoto) === 'undefined') {
options.tapPhoto = true;
}
if (typeof (options.tapFocus) == 'undefined') {
options.tapFocus = false;
}
options.previewDrag = options.previewDrag || false;
options.toBack = options.toBack || false;
if (typeof(options.alpha) === 'undefined') {
options.alpha = 1;
}
options.disableExifHeaderStripping = options.disableExifHeaderStripping || false;
options.storeToFile = options.storeToFile || false;
exec(onSuccess, onError, PLUGIN_NAME, "startCamera", [
options.x,
options.y,
options.width,
options.height,
options.camera,
options.tapPhoto,
options.previewDrag,
options.toBack,
options.alpha,
options.tapFocus,
options.disableExifHeaderStripping,
options.storeToFile
]);
};
CameraPreview.stopCamera = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "stopCamera", []);
};
CameraPreview.switchCamera = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "switchCamera", []);
};
CameraPreview.hide = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "hideCamera", []);
};
CameraPreview.show = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "showCamera", []);
};
CameraPreview.takeSnapshot = function(opts, onSuccess, onError) {
if (!opts) {
opts = {};
} else if (isFunction(opts)) {
onSuccess = opts;
opts = {};
}
if (!isFunction(onSuccess)) {
return false;
}
if (!opts.quality || opts.quality > 100 || opts.quality < 0) {
opts.quality = 85;
}
exec(onSuccess, onError, PLUGIN_NAME, "takeSnapshot", [opts.quality]);
};
CameraPreview.takePicture = function(opts, onSuccess, onError) {
if (!opts) {
opts = {};
} else if (isFunction(opts)) {
onSuccess = opts;
opts = {};
}
if (!isFunction(onSuccess)) {
return false;
}
opts.width = opts.width || 0;
opts.height = opts.height || 0;
if (!opts.quality || opts.quality > 100 || opts.quality < 0) {
opts.quality = 85;
}
exec(onSuccess, onError, PLUGIN_NAME, "takePicture", [opts.width, opts.height, opts.quality]);
};
CameraPreview.setColorEffect = function(effect, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setColorEffect", [effect]);
};
CameraPreview.setZoom = function(zoom, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setZoom", [zoom]);
};
CameraPreview.getMaxZoom = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getMaxZoom", []);
};
CameraPreview.getZoom = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getZoom", []);
};
CameraPreview.getHorizontalFOV = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getHorizontalFOV", []);
};
CameraPreview.setPreviewSize = function(dimensions, onSuccess, onError) {
dimensions = dimensions || {};
dimensions.width = dimensions.width || window.screen.width;
dimensions.height = dimensions.height || window.screen.height;
exec(onSuccess, onError, PLUGIN_NAME, "setPreviewSize", [dimensions.width, dimensions.height]);
};
CameraPreview.getSupportedPictureSizes = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getSupportedPictureSizes", []);
};
CameraPreview.getSupportedFlashModes = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getSupportedFlashModes", []);
};
CameraPreview.getSupportedColorEffects = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getSupportedColorEffects", []);
};
CameraPreview.setFlashMode = function(flashMode, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setFlashMode", [flashMode]);
};
CameraPreview.getFlashMode = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getFlashMode", []);
};
CameraPreview.getSupportedFocusModes = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getSupportedFocusModes", []);
};
CameraPreview.getFocusMode = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getFocusMode", []);
};
CameraPreview.setFocusMode = function(focusMode, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setFocusMode", [focusMode]);
};
CameraPreview.tapToFocus = function(xPoint, yPoint, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "tapToFocus", [xPoint, yPoint]);
};
CameraPreview.getExposureModes = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getExposureModes", []);
};
CameraPreview.getExposureMode = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getExposureMode", []);
};
CameraPreview.setExposureMode = function(exposureMode, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setExposureMode", [exposureMode]);
};
CameraPreview.getExposureCompensation = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getExposureCompensation", []);
};
CameraPreview.setExposureCompensation = function(exposureCompensation, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setExposureCompensation", [exposureCompensation]);
};
CameraPreview.getExposureCompensationRange = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getExposureCompensationRange", []);
};
CameraPreview.getSupportedWhiteBalanceModes = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getSupportedWhiteBalanceModes", []);
};
CameraPreview.getWhiteBalanceMode = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getWhiteBalanceMode", []);
};
CameraPreview.setWhiteBalanceMode = function(whiteBalanceMode, onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "setWhiteBalanceMode", [whiteBalanceMode]);
};
CameraPreview.getCameraCharacteristics = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "getCameraCharacteristics", []);
};
CameraPreview.onBackButton = function(onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "onBackButton");
};
CameraPreview.getBlob = function (url, onSuccess, onError) {
var xhr = new XMLHttpRequest
xhr.onload = function() {
if (xhr.status != 0 && (xhr.status < 200 || xhr.status >= 300)) {
if (isFunction(onError)) {
onError('Local request failed');
}
return;
}
var blob = new Blob([xhr.response], {type: "image/jpeg"});
if (isFunction(onSuccess)) {
onSuccess(blob);
}
};
xhr.onerror = function() {
if (isFunction(onError)) {
onError('Local request failed');
}
};
xhr.open('GET', url);
xhr.responseType = 'arraybuffer';
xhr.send(null);
};
CameraPreview.startRecordVideo = function (opts, onSuccess, onError) {
if (!opts) {
opts = {};
} else if (isFunction(opts)) {
onSuccess = opts;
opts = {};
}
if (!isFunction(onSuccess)) {
return false;
}
opts.width = opts.width || 0;
opts.height = opts.height || 0;
if (!opts.quality || opts.quality > 100 || opts.quality < 0) {
opts.quality = 85;
}
exec(onSuccess, onError, PLUGIN_NAME, "startRecordVideo", [opts.cameraDirection, opts.width, opts.height, opts.quality, opts.withFlash]);
};
CameraPreview.stopRecordVideo = function (onSuccess, onError) {
exec(onSuccess, onError, PLUGIN_NAME, "stopRecordVideo");
};
CameraPreview.FOCUS_MODE = {
FIXED: 'fixed',
AUTO: 'auto',
CONTINUOUS: 'continuous', // IOS Only
CONTINUOUS_PICTURE: 'continuous-picture', // Android Only
CONTINUOUS_VIDEO: 'continuous-video', // Android Only
EDOF: 'edof', // Android Only
INFINITY: 'infinity', // Android Only
MACRO: 'macro' // Android Only
};
CameraPreview.EXPOSURE_MODE = {
LOCK: 'lock',
AUTO: 'auto', // IOS Only
CONTINUOUS: 'continuous', // IOS Only
CUSTOM: 'custom' // IOS Only
};
CameraPreview.WHITE_BALANCE_MODE = {
LOCK: 'lock',
AUTO: 'auto',
CONTINUOUS: 'continuous',
INCANDESCENT: 'incandescent',
CLOUDY_DAYLIGHT: 'cloudy-daylight',
DAYLIGHT: 'daylight',
FLUORESCENT: 'fluorescent',
SHADE: 'shade',
TWILIGHT: 'twilight',
WARM_FLUORESCENT: 'warm-fluorescent'
};
CameraPreview.FLASH_MODE = {
OFF: 'off',
ON: 'on',
AUTO: 'auto',
RED_EYE: 'red-eye', // Android Only
TORCH: 'torch'
};
CameraPreview.COLOR_EFFECT = {
AQUA: 'aqua', // Android Only
BLACKBOARD: 'blackboard', // Android Only
MONO: 'mono',
NEGATIVE: 'negative',
NONE: 'none',
POSTERIZE: 'posterize',
SEPIA: 'sepia',
SOLARIZE: 'solarize', // Android Only
WHITEBOARD: 'whiteboard' // Android Only
};
CameraPreview.CAMERA_DIRECTION = {
BACK: 'back',
FRONT: 'front'
};
module.exports = CameraPreview;
});