2017-10-28 143 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 我相信,它會解決你的問題。 –

相關問題