Cordova文件插件不能与浏览器平台一起使用

时间:2015-01-08 10:58:12

标签: cordova fileapi

我正在尝试使用

org.apache.cordova.file 1.3.2 "File"

org.apache.cordova.file-transfer 0.4.8 "File Transfer"
浏览器平台上(我在fedora下使用chrome,带有选项--allow-file-access-from-files --allow-file-access)

但似乎它根本不起作用

  1. 没有cordova.file变量
  2. 我试图调试(使用chrome调试器)插件(函数resolveLocalFileSystemURIexec(success, fail, "File", "resolveLocalFileSystemURI", [uri]);被调用,但CommandProxyMap为空 ,所以没有任何事情发生
  3. 如果某人有一个正在运作的示例或教程解释如何使其工作。

2 个答案:

答案 0 :(得分:1)

我知道这个帖子现在已经有点年纪了,但是我想在这里更新以防万一有人遇到它,因为我...

虽然我不能具体说明更正/添加此内容,但如果您使用最新的文件和文件传输插件以及'',您现在可以使用您的浏览器中的cordova.file(在Chrome中亲自测试过)浏览器平台。

要解决cordova.file与以前版本的文件存在未定义的问题,这是我个人所做的(我使用的是Ionic,所以根据需要使用'cordova'):

> ionic plugin remove org.apache.cordova.file-transfer
> ionic plugin remove org.apache.cordova.file
> ionic platform add browser
> ionic plugin add https://github.com/apache/cordova-plugin-file.git
> ionic plugin add https://github.com/apache/cordova-plugin-file-transfer.git
> ionic run browser

答案 1 :(得分:0)

  1. 不,没有 cordova.file 。它是平台特定对象,包含指向某些位置的路径。在浏览器上,您只需使用根目录。

  2. 您需要先为浏览器申请配额。以下是我的应用程序直接的示例。

  3. 示例:

    window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
    
    if (isPhoneGapApp)
    {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess.bind(this), this.errorHandler);
    }
    else
    {
        navigator.webkitPersistentStorage.requestQuota(1024*1024*1024, function(grantedBytes) {
            window.webkitRequestFileSystem(LocalFileSystem.PERSISTENT, grantedBytes, onFileSystemSuccess.bind(this), this.errorHandler);
        }, function(e) {
            console.log('Error', e);
        });
    }
    

    如果 LocalFileSystem.PERSISTENT 未定义,请将其替换为1.