Ошибка TS2339: свойство "камера" не существует для типа "Навигатор"

Я пытаюсь создать приложение Ionic, которое делает снимок. но когда я запускаю программу, я получаю сообщение об ошибке TS2339: свойство «камера» не существует для типа «Навигатор».

я установил ionic cordova plugin add cordova-plugin-camera также npm install @ionic-native/camera

это мой app.module.ts:

import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouteReuseStrategy } from "@angular/router";

import { IonicModule, IonicRouteStrategy } from "@ionic/angular";
import { SplashScreen } from "@ionic-native/splash-screen/ngx";
import { StatusBar } from "@ionic-native/status-bar/ngx";

import { AppComponent } from "./app.component";
import { AppRoutingModule } from "./app-routing.module";
import { Camera } from "@ionic-native/camera/ngx"; 

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    Camera,
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

это моя домашняя страница.ts

import { Component, OnInit } from "@angular/core";
import { Camera, CameraOptions } from "@ionic-native/camera/ngx";

@Component({
  selector: "app-home",
  templateUrl: "home.page.html",
  styleUrls: ["home.page.scss"]
})
export class HomePage implements OnInit {

  constructor(private camera: Camera) {}

  takePicture() {
    navigator.camera.getPicture(onSuccess, onFail, {
      quality: 50,
      destinationType: this.camera.DestinationType.FILE_URI
    });

    function onSuccess(imageURI) {
      var image = document.getElementById("myImage");
      this.image.src = imageURI;
    }

    function onFail(message) {
      alert("Failed because: " + message);
    }
  }
}
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
2 291
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Но почему вы используете navigator.camera.getPicture()?

Вы должны использовать ключевое слово this для доступа к объекту камеры, а затем вы можете вызвать метод getPicture(), например this.camera.getPicture().

камера не существует в Навигаторе, проверьте документы developer.mozilla.org/en-US/docs/Web/API/Навигатор

Arron McCrory 10.04.2019 21:22

если я сделаю, как вы говорите, я получаю следующую ошибку: error TS2554: Expected 0-1 arguments, but got 3. и я хочу сказать. камера работает, когда я запускаю ее на своем телефоне, но я хочу избавиться от ошибки

Mendi Sterenfeld 10.04.2019 21:24

Как вы назвали метод? Вы должны вызвать метод, например this.camera.getPicture({option:yourOption}).then((result) => {//here is your result}}.catch((err) => {//error});

Kishan Bharda 10.04.2019 21:27

У вас есть успешные и ошибочные обратные вызовы в качестве метода, поэтому он не работает. Обрабатывайте успешный и ошибочный обратный вызов с помощью then и catch.

Kishan Bharda 10.04.2019 21:29

Другие вопросы по теме