5

この作業を回避して実装してみました1.写真をキャプチャします 2.保存した場所から写真を取得し ます3.写真をbase64として読み取ります

私はこの方法論に従いました:

var cameraOptions = {};
function capturePhoto() {
    console.log("capture photo");
    cameraOptions = { quality: 70, destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true };
    doIt();
}
function doIt() {
    navigator.camera.getPicture(onCameraSuccess, onCameraFail, cameraOptions);
}
function onCameraSuccess(imageURI) {
    console.log("Camera Success");

    $('#MokhalfaPhotoLocation').val(imageURI);
    console.log("Image URI: " + imageURI);
    window.resolveLocalFileSystemURI(imageURI, onResolveImageSuccess, onFail); //get the file from the physical path...
}
  function onResolveImageSuccess(fileEntry) {
    fileEntry.file(gotFile, onFail);
}
function gotFile(file) {
    readDataUrl(file);
}
function readDataUrl(file) {
    console.log("read file as dataUrl");
    var reader = new FileReader();
    reader.onloadend = function (evt) {
        console.log("Read as data URL");
        window.localStorage.setItem("mokhalfaPhotoURL", evt.target.result);
 };
    reader.readAsDataURL(file);
}

このチェーンは、CameraSuccessまで正常に機能し、その後、回線で失敗します

window.resolveLocalFileSystemURI(imageURI, onResolveImageSuccess, onFail);

エラーコード=5でonFailイベントに入りました

ところで、このコードはAndroidで正常に機能しましたが、問題はWindows Phone 7にあります。誰もが問題を知っていますか?

4

3 に答える 3

4

最近、このエラーに遭遇しました。解決策は非常に簡単です:)

function onCameraSuccess(imageURI) {
    console.log("Camera Success");

    $('#MokhalfaPhotoLocation').val(imageURI);
    console.log("Image URI: " + imageURI);
    window.resolveLocalFileSystemURI("//" + imageURI, onResolveImageSuccess, onFail); //get the file from the physical path...
}

imageURI を警告すると、(/CachedImagePath/etcetc/) のようになるはずです。そのため、window.resolveLocalFileSystemURI は解決する場所を認識しないため、URI の先頭に // 正しいパスを探します。

乾杯、この問題をバグトラッカーに投稿します

于 2013-03-20T23:34:46.110 に答える
0

この問題は解決されました。「https://issues.apache.org/jira/browse/CB-2736」を参照してください。しかし、私の Windows 8 Phone では、HTML IMG タグで表示する写真ファイルにアクセスできません。fileEntry.fullPath、fileEntry.toURL()、および fileEntry.toNativeURL() を試しました。

于 2014-04-25T12:48:45.923 に答える
0

あなたはこのようなことを試してみるべきです

$window.resolveLocalFileSystemURL("file://" + videoURI, function (fileEntry) {
   console.log('Success: '+fileEntry.name);
   fileEntry.getMetadata(function(metadata) {
      if(metadata.size>20971520){
          $ionicPopup.alert({
              template: '<h5>Lo sentimos <i class="icon ion-sad-outline"></i> , el video sobre pasa el limite de peso</h5>',
              title: 'Limite de peso',
          });
       }else{

       }
    });
}, function (err) {
      console.log(err);
});
于 2016-09-03T06:18:59.627 に答える