2016-11-05 2 views
1

Я относительно новичок в Ionic 2, Cordova & мобильный. Я последовал примеру приложения, чтобы создать простое приложение для камеры. Он очень похож на код в нескольких других вопросах. Находясь на моем телефоне Android, камера делает снимок, но изображение не отображается. Запись в журнале «takePicture fired» отображается, но никаких дополнительных записей в журнале нет. Есть что-то, что мне не хватает, как проблема с разрешением? Не могу понять, почему я даже не вижу запись в журнале.Камера Ionic 2 не работает на телефоне

Соответствующий код:

mypage.html

<button ion-button block color="primary" (click)="takePicture()">Take Picture</button> 
... 

<img [src]="base64Image" *ngIf="base64Image" /> 

mypage.ts

export class MyPage { 

    public base64Image: string; 

    constructor(public navCtrl: NavController) { 
} 

    takePicture() { 
    console.log("takePicture fired."); 
    Camera.getPicture({ 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     encodingType: Camera.EncodingType.JPEG, 
     targetWidth: 1000, 
     targetHeight: 1000 
    }).then((imageData) => { 
     // imageData is a base64 encoded string 
     this.base64Image = "data:image/jpeg;base64," + imageData; 
     if (this.base64Image) { 
     console.log("base64Image = " + this.base64Image); 
     } 
     else { 
     console.log("base64Image = NULL"); 
     } 
    }, (err) => { 
     console.log("An error occurred."); 
     console.error(err); 
    }); 
    }); 

ответ

0

Шаг 1: В ваших class.ts

import { Camera } from 'ionic-native'; 

Шаг 2: HTML

<img [src]="base64Image" *ngIf="base64Image" (click)="captureImage()"/> 

Шаг 3:

captureImage(){ 

     Camera.getPicture({ 
       quality: 100, 
       saveToPhotoAlbum: true, 
       destinationType: Camera.DestinationType.FILE_URI, 
       sourceType: Camera.PictureSourceType.CAMERA, 
       allowEdit: true, 
       correctOrientation: false 
       }) 
       .then((result) => { 
        this.base64Image = result; 
        console.log('Image URI: ' + this.base64Image); 
       }, (error) => { 
       console.log("ERROR -> " + JSON.stringify(error)); 
      }); 
} 

Это работает отлично ...

Ура!

Смежные вопросы