StageWebViewDisk прерывает загрузку файлов на iPad (iOS?)
Я использую приложение Adobe Air для iPad/iPhone.
Я также использую StageWebViewBridge
( https://github.com/paleozogt/StageWebViewBridge) в качестве основного контейнера для отображения веб-материалов.
Мое приложение хорошо работает для настольной версии, но StageWebViewBridge
"s StageWebViewDisk
ломает HTML-функцию загрузки файлов:
<input id="user_avatar" name="user[avatar]" style="width:100%" type="file" />
т. е. всякий раз, когда файл просматривается и выбирается из Take Photo or Video
или же Choose Existing
с реального устройства iPad, выше user_avatar
вход НЕ обновляется вообще.
Я считаю, что некоторые пути испорчены StageWebViewDisk.initialize(stage)
,
Вы можете найти полный источник StageWebViewDisk
здесь: https://github.com/paleozogt/StageWebViewBridge/blob/master/StageWebViewBridge/src/es/xperiments/media/StageWebViewDisk.as
И следующий фрагмент кода очень подозрительно:
case isIPHONE :
/* new iOS 5.0 Data Storage Guidelines
* https://developer.apple.com/icloud/documentation/data-storage/
* https://developer.apple.com/library/ios/#qa/qa1719/_index.html
*/
_appCacheFile = new File(File.applicationDirectory.nativePath +"/\.\./Library/Caches");
_applicationCacheDirectory = new File( _appCacheFile.nativePath ).url;
_applicationRootPath = _applicationCacheDirectory + '/' + getWorkingDir();
_applicationSourcesDirectory = new File( new File( "app:/" + _document_root ).nativePath ).url;
_appDocsDirectory = File.documentsDirectory.url;
/* new iOS 5.0 Data Storage Guidelines
* https://developer.apple.com/icloud/documentation/data-storage/
* https://developer.apple.com/library/ios/#qa/qa1719/_index.html
*/
_applicationTempDir = new File(File.applicationDirectory.nativePath +"/\.\./tmp");
// To acomplish the Apple Data Storage Guidelines Rules delete our TMP files dir at exit
NativeApplication.nativeApplication.addEventListener(Event.EXITING, deleteTempFolder,false,0,true );
NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, deleteTempFolder, false, 0, true);
break;
Я много отлаживал и, наконец, узнал, что StageWebViewDisk.initialize(stage)
вызывает проблему.
Доказательством является то, что, когда я не использую StageWebViewDisk.initialize(stage)
вместо этого непосредственно назначьте stage
в StageWebViewBridge._view.stage
, это работает очень хорошо.
Я не знаком с каталогами приложений / кэша iOS.
Пожалуйста, посоветуй мне.
1 ответ
Я наконец-то понял:
_applicationTempDir = new File(File.applicationDirectory.nativePath +"/\.\./SWVBTmp");
// It seems "tmp" is being used by the iOS system (such as the html file upload), so we changed to "SWVBTmp";