离子项目访问FileTransfer

时间:2015-07-30 16:19:13

标签: cordova ionic

我正在尝试使用Ionic / Cordova的FileTransfer插件。

在我的日志中,我得到了这个: 845752 error Error: Can't find variable: FileTransfer

当我在命令行中运行此命令时: ionic emulate ios -lc

我首先执行ionic build ios然后执行ionic emulate命令,但由于某种原因我仍无法访问该插件。

我是Ionic / Phonegap / Cordova的新手,我认为有一个步骤我不知道?

2 个答案:

答案 0 :(得分:2)

这是一个FileTransfer插件下载和上传示例,它在我的iphone6或模拟中工作正常,你可以尝试一下。在尝试之前,您需要在项目中运行“cordova plugin ls”命令以确保已安装这些插件。 (他们已经导出到窗口,只需使用它。)

  1. com.contraterrene.GapFile 1.1.0“GapFile”
  2. cordova-plugin-file 2.1.0“文件”
  3. cordova-plugin-file-transfer 1.2.2-dev“文件传输”
  4. 
        $scope.download = function() {
            var fileTransfer = new FileTransfer();
            //  local save path.
            var fileURL = cordova.file.documentsDirectory + "remotefile";
            //  download url
            var uri = encodeURI("http://remoteserver/remotefile");
            fileTransfer.download(
                uri,
                fileURL,
                function(entry) {
                    console.log("download complete: " + entry.toURL());
                },
                function(error) {
                    console.log("download error source " + error.source);
                    console.log("download error target " + error.target);
                    console.log("upload error code" + error.code);
                },
                false, {
                    headers: {
                        "Authorization": ""
                    }
                });
        };
        $scope.write = function() {
            GapFile.writeFile("text_" + Date.parse(new Date()) + ".txt", "hello, i am a file. send me to server", function(fileUrl) {
                $scope.fileUrl = fileUrl;
                console.log("Create File: " + fileUrl);
            }, function(error) {
                console.log("ERROR: " + error);
            });
        };
    
        $scope.upload = function() {
            console.log("Upload File: " + $scope.fileUrl);
    
            function win(r) {
                console.log("Code = " + r.responseCode);
                console.log("Response = " + r.response);
                console.log("Sent = " + r.bytesSent);
            }
    
            function fail(error) {
                console.log("upload error source " + error.source);
                console.log("upload error target " + error.target);
            }
    
            var uri = encodeURI("http://your_remote_server/upload.php");
    
            var options = new FileUploadOptions();
            options.fileKey = "file";
            options.mimeType = "text/plain";
    
            var headers = {
                'from': 'ios-app'
            };
            options.headers = headers;
            var ft = new FileTransfer();
    
            ft.upload($scope.fileUrl, uri, win, fail, options);
        }
    
    

答案 1 :(得分:0)

浏览器或模拟器不支持cordova文件传输插件。你无法在浏览器中测试它。你必须在移动设备上运行你的应用程序来测试cordova插件。然后,您可以使用chrome远程调试在浏览器中测试插件,即d