2014-03-27 2 views
0

나는 생성 된 데이터를 저장할 수 있어야 win8 저장소에 대한 자바 스크립트/HTML 애플 리케이션을 만들고 있어요. 은 내가 사용하는 파일에 텍스트 데이터를 저장하려면 : IE11 잘 코드가 작동의자바 스크립트 'msSaveBlob'윈도우 8 응용 프로그램 저장소에

 var canvas = document.createElement('canvas'); 
     canvas.width = img.width; 
     canvas.height = img.height; 
     var ctx = canvas.getContext('2d'); 
     ctx.drawImage(img, 0, 0, canvas.width, canvas.height); 
     window.navigator.msSaveBlob(canvas.msToBlob(), 'fileName.png'); 

이 부분 :

 var bb = new MSBlobBuilder(); 
     bb.append(data); 
     var blob = bb.getBlob("text/plain"); 
     window.navigator.msSaveBlob(blob, 'fname.txt'); 

내가 사용하는 이미지를 저장합니다.

하지만 Visual Studio를 통해 내 코드를 실행하면 오류있어 : 0x800a01b6 - 자바 스크립트 런타임 오류 : 개체가 속성 또는 메서드를 지원하지 않습니다 'msSaveBlob'가

어떻게이 문제를 해결하기를?
win8 앱에 데이터를 저장하는 다른 방법이 있습니까?

답변

1

내가 윈도우 스토어 앱을

 var saveimg= function() { 
     var output; 
     var input; 
     var outputStream; 
     var Imaging = Windows.Graphics.Imaging; 
     var fileval = null; 
     imageFile = null; 
     Windows.Storage.KnownFolders.picturesLibrary.createFileAsync("filename.png", 
       Windows.Storage.CreationCollisionOption.generateUniqueName). 
      then(function (file) { 
       fileval = file; 
       return file.openAsync(Windows.Storage.FileAccessMode.readWrite); 
      }).then(function (stream) {      
       fileStream = stream;     
       var canvas = document.createElement('canvas'); 
       canvas.id  = "canvasid"; 
       canvas.width = img.width; 
       canvas.height = img.height; 
       var ctx = canvas.getContext('2d'); 
       ctx.drawImage(img, 0, 0, canvas.width, canvas.height);         
       return Imaging.BitmapEncoder.createAsync(Imaging.BitmapEncoder.pngEncoderId, stream); 

       // return Windows.Storage.Streams.RandomAccessStream.copyAsync(input, output); 
      }).then(
      function (encoder) { 
       //Set the pixel data--assume "encoding" object has options from elsewhere 
       // encoder.setPixelData(encoding.pixelFormat, encoding.alphaMode, encoding.width, encoding.height, encoding.dpiX, encoding.dpiY, new Uint8Array(imgData.data)); //Go do the encoding 
       var canvas = document.getElementById("canvasid"); 
       var ctx = canvas.getContext("2d");     
       var width = document.getElementById("canvasid").width; 
       var height = document.getElementById("canvasid").height;     
       var outputPixelData = ctx.getImageData(0, 0, width, height); 
       encoder.setPixelData(
        Imaging.BitmapPixelFormat.rgba8, 
        Imaging.BitmapAlphaMode.straight, 
        width, 
        height, 
        96, // Horizontal DPI 
        96, // Vertical DPI 
        outputPixelData.data 
        ); 
       return encoder.flushAsync(); 
      }).done(function() { 

       fileStream.close(); 
      }, function() { 
       //Empty error handler (do nothing if the user canceled the picker) 
      }); 

}

+0

멋진 이미지를 저장하기 위해 다음과 같은 방법을 사용했다! 2 질문 : txt 데이터를 저장하는 방법 및 picturesLibrary에서 다운로드로 폴더를 변경하는 방법? – 31415926

+0

u는 문서 라이브러리를 사용하는 회사 계정이 있어야하며 많은 restrictions.u가 filepickers를 사용하여 문서 library.refer에 데이터를 저장할 수 있습니다 http://blogs.msdn.com/b/wsdevsol/archive/2013/05/ 09/다루기 - 문서 - 사용법 - 사용법 - 문서 라이브러리 - 기능 - 창 - 저장 - apps.aspx – suganthi

+0

텍스트 저장이 링크를 클릭하십시오. http://msdn.microsoft.com/en- us/library/windows/apps/dn531045.aspx – suganthi

관련 문제