0

iPad/iPhone アプリケーション用の Adob​​e Air を使用しています。

また、メインの Web コンテンツ表示コンテナーとしてStageWebViewBridge( https://github.com/paleozogt/StageWebViewBridge )を使用しています。

私のアプリケーションはデスクトップ バージョンでは問題なく動作しますが、は HTML ファイルStageWebViewBridgeのアップロード機能を壊します。StageWebViewDisk

<input id="user_avatar" name="user[avatar]" style="width:100%" type="file" />

つまり、ファイルが参照され、実際の iPad デバイスから選択されるたびに、上記の入力はTake Photo or Videoまったく更新されません。Choose Existinguser_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)に を に直接代入するstageStageWebViewBridge._view.stage、非常にうまく機能することです。

私は iOS アプリ/キャッシュ ディレクトリに慣れていません。

教えてください。

4

1 に答える 1

0

私はついにそれを理解しました:

_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"; 
于 2013-03-14T20:17:28.167 に答える