2013-10-01 2 views
0

Chrome 용 HTML5 SVG 편집기를 만들고 있습니다. 패키지 응용 프로그램으로, 나는이 코드를 사용하여 대화 저장하여 구현 :저장 대화 상자에 크롬 앱이 표시되지 않습니다.

function prepareExport(){ 
var svg = document.getElementById("canvas"); 
svgDoc = svg.children; 
var exported = document.querySelector('#canvasWrap').innerHTML; 
/*old stuff, does not work in packed apps. well for me anyway 
var output = document.querySelector(".opt"); 
var outputTextarea = document.querySelector(".optText"); 
output.style.display = "block"; 
outputTextarea.style.display = "none"; 
var dlButton = document.querySelector(".dragout"); 
dlButton.setAttribute("href" ,"data:image/xml+svg;base64," + window.btoa(exported)); 
dlButton.setAttribute("data-downloadurl" ,dlButton.dataset['downloadurl'] + window.btoa(exported)); 
dlButton.addEventListener('dragstart', function(e) { 
e.dataTransfer.setData('DownloadURL', this.dataset.downloadurl); 
    }, false); 
    */ 

    chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry, unused) { 
    writableFileEntry.createWriter(function(writer) { 
     writer.onerror = errorHandler; 
     writer.onwriteend = function(e) { 
    console.log('write complete'); 
    }; 
    writer.write(new Blob([exported], {type: 'image/svg+xml'})); 
}, errorHandler); 
}); 
} 

내가 버튼, 수출 SVG를 사용하여이 기능을 실행, 그리고 무엇을 추측? 대화 상자가 나타나지 않았습니다. 왜 그런지 내 자바 스크립트 콘솔인지 알 수 없습니다. http://prntscr.com/1uklw7

답변

1

이것은 아마도 권한 오류 일 것입니다. 매니페스트에 파일 시스템 쓰기 권한을 추가 했습니까? 자세한 내용은 http://developer.chrome.com/apps/fileSystem.html을 참조하십시오.

문제가 아닌 경우 콜백의 chrome.lastError에서 자세한 내용을 확인할 수 있습니다. 자세한 내용은 http://developer.chrome.com/apps/runtime.html#property-lastError을 참조하십시오.

또한 파일 시스템 샘플 : https://github.com/GoogleChrome/chrome-app-samples/tree/master/filesystem-access을 확인해보십시오.

+0

필자는 fileSystem을 가지고 있지만 참조하는 "파일 시스템 쓰기"권한과 내가 가지고있는 권한 사이의 차이점은 무엇입니까? – figgycity50

+0

"fileSystem"을 사용하면 파일에서 읽을 수 있습니다. { "fileSystem": [ "write"]} 또한 파일에 쓸 수 있습니다. http://developer.chrome.com/apps/fileSystem.html에 자세한 내용이 나와 있습니다. –

관련 문제