在浏览器上运行的Ionic 3 App中访问相机

时间:2017-12-28 13:50:01

标签: cordova ionic-framework ionic2 cordova-plugins ionic3

我有离子3 app有以下代码来访问相机。

takePhoto() {
    const options: CameraOptions = {
    quality: 50,
    destinationType: this.camera.DestinationType.DATA_URL,
    encodingType: this.camera.EncodingType.JPEG,
    mediaType: this.camera.MediaType.PICTURE,
    targetWidth: 450,
    targetHeight: 450,
    saveToPhotoAlbum: false
 };

   this.camera.getPicture(options).then(
    imageData => {
      this.base64Image = "data:image/jpeg;base64," + imageData;
      this.photos.push(this.base64Image);
      this.photos.reverse();
      this.sendData(imageData);
     },
     err => {
       console.log(err);
     }
     );
}

如果我的平台是android / ios,它可以很好地工作并拍照。但是,当我尝试在平台上运行我的应用程序'浏览器'并通过手机访问我得到以下错误(两者都在Safari或Chrome上)。

enter image description here

如果我的平台是浏览器,那么在移动设备中访问相机/图库的方法是什么?

1 个答案:

答案 0 :(得分:2)

首先,cordova-browser是一个仅用于测试目的的平台,您不应该使用它来定位真正的浏览器应用。

cordova-plugin-camera使用navigator.getUserMedia用于浏览器平台,因此它应该可以在iOS 11上的Safari上正常运行,但在旧版本中则不行。它不适用于Chrome,因为Chrome for iOS只是常规的网页浏览,而且网页浏览不支持navigator.getUserMedia

如果要从手机中选择文件,可以使用带有文件类型的输入标签。

<input name="myFile" type="file">