我是这个结构的新手。我将相机插件添加到应用程序中并构建应用程序。它会抛出错误。
错误在D:/../ CordovaApp / src / app / menu-bar / menu-bar.component.ts(20,15):Property' camera'类型' N上不存在
AVIGATOR&#39 ;.
错误在D:/../ CordovaApp / src / app / menu-bar / menu-bar.component.ts(23,16):找不到姓名' Camera'。
任何人都可以帮助我摆脱这个问题。
/ **更新部分** /
将两个变量添加到组件中后。应用程序构建成功,但是当我调试应用程序时,我没有将插件属性导入导航器。请参考下面附带的快照。
答案 0 :(得分:0)
Typescript是一种打字语言。因此,无论何时使用任何基于javascript的库/插件,都必须确保相应的类型可用。
在这里,您使用了navigator,它实际上是JavaScript或Cordova已知的,但却不知道由于导致此错误的Typescript。
有两种方法可以解决这个问题。
- 安装相应的类型定义。 (http://definitelytyped.org/)
- 将导航器声明为任何类型。
醇>
@Component({
selector: 'app',
template: `<button type="button" (touchend)="onCamera($event)">Camera</button>`
})
export class AppComponent {
public onCamera(event) {
const cameraOptions = {
destinationType: (<any>Camera).DestinationType.FILE_URI
};
(<any>navigator).camera.getPicture(cameraSuccess, cameraError, cameraOptions);
}
}
或
declare var navigator: any;
declare var Camera: any;
@Component({
selector: 'app',
template: `<button type="button" (touchend)="onCamera($event)">Camera</button>`
})
export class AppComponent {
public onCamera(event) {
const cameraOptions = {
destinationType: Camera.DestinationType.FILE_URI
};
navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
}
}