Ионная камера c 4 Cordova получить файл URI с фотолабораторией - PullRequest
0 голосов
/ 22 января 2020

Я могу получить base64 с камерой SOURCETYPE, но не с ФОТОБИБЛИОТЕКОЙ. Это похоже на проблему с webview или resolLocalFileSystemURL. Я не хочу использовать DATA.URL, потому что приложение вызывает сбой.

Ожидается: ResolveLocalFileSystemURL должен возвращать фактический путь к файлу

REPO: https://github.com/indraraj26/cordova-testing

takePicture(source: string) {
    const options: CameraOptions = {
      quality: 100,
      destinationType: this.camera.DestinationType.FILE_URI,
      encodingType: this.camera.EncodingType.JPEG,
      mediaType: this.camera.MediaType.PICTURE
    };

    if (source == "1") {
      options.sourceType = this.camera.PictureSourceType.CAMERA;
    } else if (source == "2") {
      options.sourceType = this.camera.PictureSourceType.PHOTOLIBRARY;
    }
    this.camera.getPicture(options).then(
      async imageData => {
        console.log(this.webView.convertFileSrc(imageData), "convertFileSrc");
        this.imgUrl = this.webView.convertFileSrc(imageData);
        alert(this.webView.convertFileSrc(imageData));
        console.log(imageData, "imageData");
        alert(imageData);
        let blob = await fetch(this.webView.convertFileSrc(imageData)).then(r =>
          r.blob()
        );
        console.log(blob, "blob");
        alert(blob);
        this._base64.encodeFile(imageData).then(base64str => {
          console.log(base64str);
          alert(base64str);
        });

        window.resolveLocalFileSystemURL(imageData, fileEntry => {
          fileEntry.file(file => {
            console.log(file, "window file");
            alert(file + "window file");
            console.log(file.localURL, "localUrl");
            this._base64
              .encodeFile(file.localURL)
              .then(base64LocalURL => {
                console.log(base64LocalURL, "base64LocalUrl");
              })
              .catch(e => console.log(e, "base64localError"));
          });
        });

        // if (imageData.indexOf("file://") == -1) {
        //   imageData = "file://" + imageData;
        // }
        this._file.resolveLocalFilesystemUrl(imageData).then(entry => {
          console.log(entry);
          alert("entry" + entry);
          // console.log(
          //   entry.toInternalURL(),
          //   entry.toURL(),
          //   entry.fullPath,
          //   entry.nativeURL
          // );
          // if (imageData.indexOf("file://") == -1) {
          //   imageData = "file://" + imageData;
          // }

          // entry.file(rfile => {
          //   console.log(rfile, "real file");
          //   alert("real file" + rfile);
          // });
        });
      },
      err => {
        console.log(err);
      }
    );
  }

С КАМЕРОЙ WITH CAMERA

С ФОТОБИБЛИОТЕКОЙ enter image description here

...