Many a times when you are using an external javascript library into your winjs application, you come across apis that expect a parameter as ArrayBuffer. Windows storage apis like FileIO.readBufferAsync return IBuffer. In such case, How do one read the contents of a file into ArrayBuffer?
There are multiple solutions for this. One of the solution that I have come across is to read the DOM ‘File’ object using WinJS.xhr.
var storage = Windows.Storage; storage.StorageFile.getFileFromApplicationUriAsync(new Windows.Foundation.Uri('ms-appx:///images/logo.png')).then(function ongetfile(file) { var blob = MSApp.createFileFromStorageFile(file); var url = URL.createObjectURL(blob, { oneTimeOnly: true }); return WinJS.xhr({ url: url, responseType: 'arraybuffer' }); }).then(function onreadbuffer(req) { var arrayBuffer = req.response; }).then(null, function onerror(error) { // TODO: handle error });