Я пытаюсь создать приложение 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);
}
}
}
Но почему вы используете navigator.camera.getPicture()
?
Вы должны использовать ключевое слово this
для доступа к объекту камеры, а затем вы можете вызвать метод getPicture()
, например this.camera.getPicture()
.
если я сделаю, как вы говорите, я получаю следующую ошибку: error TS2554: Expected 0-1 arguments, but got 3
. и я хочу сказать. камера работает, когда я запускаю ее на своем телефоне, но я хочу избавиться от ошибки
Как вы назвали метод? Вы должны вызвать метод, например this.camera.getPicture({option:yourOption}).then((result) => {//here is your result}}.catch((err) => {//error});
У вас есть успешные и ошибочные обратные вызовы в качестве метода, поэтому он не работает. Обрабатывайте успешный и ошибочный обратный вызов с помощью then
и catch
.
камера не существует в Навигаторе, проверьте документы developer.mozilla.org/en-US/docs/Web/API/Навигатор