【问题标题】:Phonegap Filetransfer works on iOS nothing happens on AndroidPhonegap Filetransfer 适用于 iOS 在 Android 上没有任何反应
【发布时间】:2014-12-17 10:44:51
【问题描述】:

现在,我在服务器上上传一些图片时遇到了问题。我的代码在 iOS 设备上运行良好,但是当我尝试在 Android 上上传时,它什么也没做。在文件传输之前,我试图提醒 ImageURI,但它也没有发生。

我正在使用带有 Phonegap 3.4.0 版和 Sencha Touch 2.3 的 PhoneGap Build。在 config.xml 中,我使用核心 phonegap 摄像头插件:<gap:plugin name="org.apache.cordova.camera" />.

我的文件上传脚本如下所示:

Ext.define('my_app.controller.Fileupload', {
    extend: 'Ext.app.Controller',
    requires: [
        'Ext.MessageBox'
    ],
    config: {
        refs: {
            fileupload: '#fileupload',
            getLibraryImage: 'button[action=getLibraryImage]',
            getCameraImage: 'button[action=getCameraImage]'
        },
        control: {
            getLibraryImage: {
                tap: 'getLibraryImage'
            },
            getCameraImage: {
                tap: 'getCameraImage'
            }
        }
    },
    getLibraryImage: function() {

        navigator.camera.getPicture(this.fileupload, onFail, {
            destinationType: Camera.DestinationType.FILE_URI,
            sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
            allowEdit: true,
            targetWidth: 800,
            targetHeight: 800
        });

        function onFail(message) {
            alert('Failed because: ' + message);
        }

    },
    getCameraImage: function() {

        navigator.camera.getPicture(this.fileupload, onFail, {
            destinationType: Camera.DestinationType.FILE_URI,
            sourceType: Camera.PictureSourceType.CAMERA,
            quality: 100,
            allowEdit: true,
            targetWidth: 800,
            targetHeight: 800
        });

        function onFail(message) {
            alert('Failed because: ' + message);
        }

    },
    fileupload: function(imageURI) {

    alert(imageURI);

        Ext.Viewport.setMasked({
            xtype: 'loadmask',
            message: Loc.t('LOADMASK.FILEUPLOAD'),
            styleHtmlContent: true,
            indicator: true
        });

        var options = new FileUploadOptions();
        options.fileKey = "file";
        options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
        options.mimeType = "image/jpeg";

//  if (Ext.os.is('Android')) {
//      options.chunkedMode = true;
//  }

        var user = JSON.parse(localStorage.getItem('user'));

        var user_id = user.id;
        var username = user.username;

        var params = new Object();
        params.user_id = user_id;
        params.username = username;
        options.params = params;

        var ft = new FileTransfer();
        ft.upload(imageURI, encodeURI("my_upload_uri"), win, fail, options);

        function win(response) {

            if (Ext.JSON.decode(response.response).error) {

                Ext.Viewport.setMasked(false);
                Ext.Msg.alert('my_app', Ext.JSON.decode(response.response).error);

            } else {


                my_app.app.getController('Basic').ProfileImages();
                Ext.Msg.alert('my_app', Ext.JSON.decode(response.response).success);


            }


        }

        function fail(error) {

            Ext.Viewport.setMasked(false);

            alert("An error has occurred: Code = " + error.code);
        }

    }
});

如果有人能发现问题,我将非常感谢您的帮助!提前致谢。

【问题讨论】:

    标签: android ios cordova file-transfer


    【解决方案1】:

    升级到 PhoneGap 3.6.3 版解决了我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      相关资源
      最近更新 更多