2016-06-06 3 views
0

현재 키오스크 앱으로 사용할 첫 번째 Chrome 앱을 현재 개발 중입니다.시작시 파일 읽기 Chrome 확장/키오스크 앱

응용 프로그램을 시작할 때 파일을 읽으려고하는데 그 파일은 구성 파일 (.json)입니다. 앱이 출시되면 URL 내에 전달되는 값을 포함합니다 (예 : www.google.com/key=keyValueInTheJsonFile).

https://developer.chrome.com/apps/fileSystem (특히 "chooseEntry"메소드)을 사용하여 파일을 읽을 수는 있지만, 필자의 경우 파일의 경로/이름을 직접 지정하고 파일을 선택하라는 메시지를 표시하지 않습니다. 마찬가지로 시작시 리디렉션 된 URL에 값을 전달할 수 있습니다.

내가 어떻게 그럴 수 있다고 생각 하나?

감사합니다!

+0

에서 [샌드 박스 파일 시스템]을 사용하여 (http://www.html5rocks.com/en/tutorials/file/를 파일 시스템 /) api. –

+0

그래, 사용했지만 파일을 읽으려고하면 "NOT_FOUND_ERR"이라고 표시됩니다. 그것은 파일을 찾지 못했지만이 파일은 내 앱 "/"의 루트에 있음을 의미합니다. 그리고 "{create : true}"로 새 파일을 만들려고해도 작업이 성공했지만 파일을 만들 때마다 오류가 반환되지 않습니다. 왜 그런지 알고 있습니까? – Leon

답변

2

파일이 패키지에있는 경우 간단한 XHR 또는 가져 오기를 사용하여 읽을 수 있습니다. 웹 파일 시스템은 용도가 다르기 때문에 웹 파일 시스템을 사용할 수 없으며 사용자 상호 작용이 필요하기 때문에 Chrome 파일 시스템 (사용자의 FS)이 여기에서 작동하지 않습니다.

사용 기능 getURL 자원에 전체 URL을 가져온 다음 XHR 호출을 만들려면 :

var rUrl = chrome.runtime.getURL('file.json'); 
fetch(rUrl).then((response) => { 
    return response.json(); 
}) 
.then((fileContent) => { 
    // the content 
}) 
.catch((cause) => console.log(cause)); 
+0

이 솔루션은 매우 효과적입니다!하지만 응용 프로그램 내부가 아닌 다른 곳에서 읽기 원하는 파일이 필요합니다. 액세스 제한 및 보안으로 인해 가능할 지 확실하지 않습니다 ... 더 많은 것을 알고 있습니까? 그것에 대해? – Leon

+1

일부 서버에서 호스팅 할 수 있으며 거기에서 다운로드 할 수 있습니다 (동일한 방법으로 매니페스트 파일에서 호스트 권한을 선언해야합니다.) 그러나 파일을 디스크에 저장하고 거기에서 가져 오려면 사용자 상호 작용이 필요합니다. 열려있는 파일 대화 상자를 열고 파일을 가리켜 야합니다. 다음에 앱을로드 할 때이 정보를 유지하고이 위치를 다시 사용할 수 있습니다. [docs] (https : /developer.chrome.com/apps/fileSystem) m 용 파일 시스템이 어떻게 작동하는지에 대한 정보. –

+0

그래, 내가 생각했던거야! 그렇게 할 것입니다. 처음으로 파일을 선택하고 앱이 다시 시작될 때 자동로드되는 항목 (파일 + 경로)을 유지합니다. 감사! – Leon

관련 문제