0

phonegapを使用してIOSアプリを開発しています...デフォルトのカメラAPIを使用したため、ユーザーは自分のユーザープロファイル写真用に写真を撮ることができます。

関数は正常に動作していますが、ユーザーがキャプチャした画像がシステムファイルに保存されないため、他のページで取得できます

ここに私のコードがあります

var pictureSource;   // picture source
    var destinationType; // sets the format of returned value 

    // Wait for Cordova to connect with the device
    //
    document.addEventListener("deviceready",onDeviceReady,false);

    // Cordova is ready to be used!
    //
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }

    // Called when a photo is successfully retrieved
    //
    function onPhotoDataSuccess(imageData) {
      // Uncomment to view the base64 encoded image data
      // console.log(imageData);

      // Get image handle
      //
      var smallImage = document.getElementById('smallImage');

      // Unhide image elements
      //
      smallImage.style.display = 'block';

      // Show the captured photo
      // The inline CSS rules are used to resize the image
      //
      smallImage.src = "data:image/jpeg;base64," + imageData;

    }

    // Called when a photo is successfully retrieved
    //
    function onPhotoURISuccess(imageURI) {
      // Uncomment to view the image file URI 
      // console.log(imageURI);

      // Get image handle
      //
      document.getElementById('smallImage').src='img/me2.jpg';
      var smallImage = 'img/me2.jpg';

      // Unhide image elements
      //
      smallImage.style.display = 'block';

      // Show the captured photo
      // The inline CSS rules are used to resize the image
      //
      smallImage.src = imageURI;
    }

    // A button will call this function
    //
    function capturePhoto() {
      // Take picture using device camera and retrieve image as base64-encoded string
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
        destinationType: destinationType.DATA_URL });
    }

    // A button will call this function
    //
    function capturePhotoEdit() {
      // Take picture using device camera, allow edit, and retrieve image as base64-encoded string  
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, allowEdit: true,
        destinationType: destinationType.DATA_URL });
    }

    // A button will call this function
    //
    function getPhoto(source) {
      // Retrieve image file location from specified source
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, 
        destinationType: destinationType.FILE_URI,
        sourceType: source });
    }

    // Called if something bad happens.
    // 
    function onFail(message) {
      alert('Failed because: ' + message);
    }

ユーザーがカメラを使用して写真を撮った後、ファイル (「img/me2.jpg」) をオーバーライドするにはどうすればよいですか?

4

1 に答える 1

1

そのファイルはアプリケーション バンドルにあるため、img/me2.jpg を上書きすることはできません。

キャプチャした画像をアプリケーション データ フォルダに保存し (たとえば、PhoneGap の File API を使用)、URL を localStorage に保存して、いつでも取得できるようにする必要があります。

于 2013-02-18T13:32:08.727 に答える