В настоящее время мы разрабатываем iOS-приложение с Appcelerator, которое хранит мультимедийные файлы на устройстве для последующего просмотра (pdf, mp4, zipped web pages).Приложение Appcelerator падает при загрузке большого (> 500mb) zip-файла
У нас возникла проблема с файлами выше 500 МБ, которые разбивают приложение на iPhone. Приложение работает над iPad2, но при загрузке этих файлов все iPhone тестировали крах (случайным образом).
Файлы распаковываются (все файлы мультимедиа поставляются с дополнительной информацией внутри архива) через ti.compression.
Код, используемый в (с разбивкой на соответствующие части):
var zipDownloader = Ti.Network.createHTTPClient({
'onload' : function() {
var tempname = Math.floor((Math.random() * 10000000) + 1);
var dir = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, 'tempDownloads', tempname);
dir.createDirectory();
filename = '' + tempname + '.zip';
var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, 'tempDownloads', filename);
f.write(this.responseData);
var Compression = require('ti.compression');
var zipFileName = Ti.Filesystem.applicationDataDirectory + 'tempDownloads/' + filename;
var outputDirectory = Ti.Filesystem.applicationDataDirectory + 'tempDownloads/' + tempname + '/';
var start = Math.floor(Date.now()/1000);
var result = Compression.unzip(outputDirectory, zipFileName, true);
var finished = Math.floor(Date.now()/1000) - start;
f.deleteFile();
Compression = null;
this.callback(outputDirectory);
}
});
zipDownloader.open('GET', url);
zipDownloader.callback = callback; // given in previous code, not relevant
zipDownloader.send();
У вас есть журнал аварий? – Shawn
@Shawn Спасибо за ваш вопрос, ответ майги решил проблему. – rickkrueger