앱을 개발하다보면 미디어 파일을 많이 사용해야할 일이 있습니다.
그런데 앱에 포함하면 용량 문제로 빌드하기 곤란하기 때문에, 온라인 공간(클라우드)에 파일을 올려놓고 그 파일의 주소를 복사하여 링크주소를 활용하면 용량 문제를 해결할 수가 있습니다.
그런데 이때 읽어오는 시간으로 인하여 약간의 지연현상이 발생하는 문제가 있습니다.
최초 읽어오기는 어쩔 수 없다하더라도 한 번 읽어서 폰에 그 파일을 저장하여 사용하면 시간 지연현상이 발생하지 않습니다. 그래서 그 방법을 공유해보고자 합니다.
일단은 클라우드에 파일을 올려 놓고 링크 주소를 확보합니다.
Connectivity[연결]에 있는 Web(웹) 컴포넌트를 추가합니다.
블록으로 코딩을 하는 방법입니다.
이때 두 가지만 유의하시면 됩니다.
외부저장소에 파일이 저장되기 때문에 Permission을 획득해야합니다.
그렇지 않으면 [Error 908: The permission Write_External_Storage has been denied...]에러가 발생합니다.
화면명[Screen1]을 클릭하면 [Ask For Permission]블럭이 있습니다.
웹에 클라우드에 있는 파일의 경로(URL을) 지정하고 Get처리합니다.
웹의 [Got File]블럭의 [file Name]을 변수 [임시]에 저장시킨 다음
화면 열기에서 startValue[시작 값]으로 지정해주는 것입니다.
그리고 새화면[Screen2]에서
이미지 컴포넌트에 [get start value]를 연결해주는 것입니다.
[get start value] 블럭은 [Control]에 있습니다.
그리고, 앱을 종료할 때 이 파일을 삭제해주는 것입니다.
이때 파일을 삭제하기 위해서는 별도로 확장콤포넌트(Extension)을 이용해야합니다.
https://downloads.sourceforge.net/project/puravidaapps/com.puravidaapps.TaifunFile.aix
위 링크를 클릭하여 [TaifunFile.aix]를 다운로드합니다.
앱종료시에 [Screen1]에서 [TaifunFile.aix]를 읽어들인 후
삭제 컴포넌트의 [fileName]에 아까 저장했던, 파일의 이름이 저장된 변수[임시]를 연결해주면 됩니다.