2017-04-25 3 views
0

ファイルプラグインが動作しないことがわかりました。このようなCordova-plugin-file getFile/getDirectoryコールバックがありません。

My機能:

function (filename, fileObj, succCallback) { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) { 
     fs.root.getFile(filename, {create: true, exclusive: false}, function(fileEntry){ 
      fileEntry.file(function (file) { 
       var reader = new FileReader(); 
       reader.onloadend = function() { 
        if(typeof succCallback === 'function') { 
         succCallback(this.result); 
        } 
       }; 
       reader.readAsText(file); 
      }, myfile.errorHandler); 
     }, errorHandler); 
    }, errorHandler); 
} 

機能は "window.requestFileSystem" SUCCを行うが、fs.root.getFileは/機能に失敗SUCCを発射ません。 "CDVFile.m"をデバッグしようとしましたが、Objective-Cコードがexec overであることがわかりました。

"CDVFile.m" ではgetFile:

- (void)getFile:(CDVInvokedUrlCommand*)command 
{ 
    NSString* baseURIstr = [command argumentAtIndex:0]; 
    CDVFilesystemURL* baseURI = [self fileSystemURLforArg:baseURIstr]; 
    NSString* requestedPath = [command argumentAtIndex:1]; 
    NSDictionary* options = [command argumentAtIndex:2 withDefault:nil]; 

    NSObject<CDVFileSystem> *fs = [self filesystemForURL:baseURI]; 
    CDVPluginResult* result = [fs getFileForURL:baseURI requestedPath:requestedPath options:options]; 


    [self.commandDelegate sendPluginResult:result callbackId:command.callbackId]; 
} 

上記のように、ファイルのプラグイン(ソースコード "DirectoryEntry.js")succCallback(FUNC勝つ)の火災ではないていたが、どちらもfailCallback(FUNC失敗します)。 "DirectoryEntry.js":

DirectoryEntry.prototype.getFile = function(path, options, successCallback, errorCallback) { 
    argscheck.checkArgs('sOFF', 'DirectoryEntry.getFile', arguments); 
    var fs = this.filesystem; 
    var win = successCallback && function(result) { 
     var FileEntry = require('./FileEntry'); 
     var entry = new FileEntry(result.name, result.fullPath, fs, result.nativeURL); 
     successCallback(entry); 
    }; 
    var fail = errorCallback && function(code) { 
     errorCallback(new FileError(code)); 
    }; 
    exec(win, fail, "File", "getFile", [this.toInternalURL(), path, options]); 
}; 

マイXCodeのバージョン:7.3(iOSのSDK 9.3で) マイコルドバのバージョン:6.5.0 コルドバ・プラグイン・ファイル4.3.2

私の "ファイル" config.xmlには次の設定が追加されました:

<preference name="iosPersistentFileLocation" value="Library" /> 
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" /> 

誰も同じ問題を抱えていますか?または、私にいくつかのヒントを、ありがとう!

2017年4月27日追加発言:

The debug png why no callback fired

コールバックがトリガーされませんなぜ私が見つかりました。しかし、なぜそれが "succssとNO_RESULT"なのかわかりませんでした...

答えて

0

数日前、私はそれを発見しました。 jsファイルを追加すると、ファイルプラグインは機能しません。そして、iframeページにjsファイルを作成する以外に選択肢はありません。それは今働くことができます。 おそらく同じ問題があります。これが他人を助けることができれば幸いです。

関連する問題