2017-10-28 174 views
-1

我是这种结构中的新手。我将相机插件添加到应用程序中并构建应用程序。它抛出错误。如何在角度4混合应用中使用科尔多瓦插件

ERROR在d:/../ CordovaApp/SRC /应用程序/菜单栏/菜单bar.component.ts(20,15):属性 '相机' 不存在于类型 'N AVIGATOR' 。

D:/../ CordovaApp/src/app/menu-bar/menu-bar.component.ts错误(23,16):找不到名称'Camera'。

任何人都可以帮助我摆脱这个问题。

/**更新部分**/

将两个变量添加到组件后。应用程序构建成功,但是当我调试应用程序时,我没有将插件属性导入导航器。请参阅下面的附件快照。

click on this link to open snap shot

回答

0

打字稿是一种类型语言。因此,无论何时使用任何基于JavaScript的库/插件,您都必须确保提供相应的类型

在这里,您已经使用了导航器,它实际上是JavaScript或Cordova已知的,但不知道导致此错误的Typescript。

有两种方法可以解决这个问题。

  1. 安装相应的类型定义。 (http://definitelytyped.org/
  2. 声明导航器为任何类型。
@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); 
    } 
} 
+0

我想上面的例子,但我仍面临着同样的问题。错误:无法找到名称'相机'。 任何其他建议。 –

+0

使用上面的代码,你会得到错误在浏览器控制台或生成错误?如果您在浏览器控制台中出现错误,请确定您是否在config.xml中启用了Camera插件 –

+0

似乎您也正在使用Camera常量(Camera.destinationType.FILE_URI等)。你能否声明相机也一样。 declare var Camera:any;或(相机).destinationType.FILE_URI 我相信,它会解决你的问题。 –

相关问题