我尝试使用angular2中的简单测试组件运行cordova-plugin-camera。
首先,我通过在cordova安装插件将插件添加到cordova。 接下来,我在index.html上添加了cordova.js。
<body>
<app-root>Loading...</app-root>
<script type="text/javascript" src="cordova.js"></script>
</body>
之后我构建了一个简单的角度组件来调用cordova插件。该组件有一个按钮,此按钮应通过cordova调用本机摄像头。
Componenten HTML
<p>
testcamera works!
</p>
<div>
<button md-raised-button (click)="takePicture()">Picture</button>
</div>
通过单击组件上的方法/函数将被调用。我声明了一个cordova变量来访问cordova插件。
角度分量TS
import { Component, OnInit } from '@angular/core';
declare let cordova: any;
@Component({
selector: 'app-testcamera',
templateUrl: './testcamera.component.html',
styleUrls: ['./testcamera.component.css']
})
export class TestcameraComponent implements OnInit {
public base64Image : String;
public photos;
public text;
constructor() {
}
ngOnInit() {
}
takePicture(){
cordova.plugins.camera.getPicture({
destinationType: cordova.plugins.camera.DestinationType.DATA_URL,
targetWidth: 1000,
targetHeight: 1000
}).then((imageData) => {
// imageData is a base64 encoded string
this.base64Image = "data:image/jpeg;base64," + imageData;
}, (err) => {
console.log(err);
});
}
}
该组件的工作原理如此,但是当我按下“Picture”按钮时,该函数被调用,但是cordova不会打开原生图片应用程序。调用cordova.plugins.camera.getPicture(..)无效。 任何人都可以帮忙吗?我错过了什么? 非常感谢。
答案 0 :(得分:0)
好的,我自己帮忙。我遇到的问题是我被误拿了。
而不是
destinationType:cordova.plugins.camera.DestinationType.DATA_URL,
我添加以下内容:
destinationType:navigator.camera.DestinationType.DATA_URL,
另外,我必须为它声明一个变量。
声明let navigator:any;`
很多 `