1

我试图用来getPicture()允许用户在单击主干视图中的按钮时选择照片/视频。这是我的视图代码中的相关部分:

    events: {
        "click .add-moment-media": "addMedia",
    },

    addMedia: function(e) {
        navigator.camera.getPicture(this.successAddMedia, this.errorAddMedia, { 
            quality: 20,
            destinationType: Camera.DestinationType.FILE_URI,
            sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
            mediaType: Camera.MediaType.ALLMEDIA  
        })
    },

    successAddMedia: function(imageURI) {
        showAlert("Your photo has been uploaded!", "Your Photo"  + imageURI);
    },

    errorAddMedia: function(message) {
        showAlert("Failed because: " + message, "Failure");
    }

出于测试目的,我只是尝试在成功时显示带有图像 URI 的警报。

问题:当我按下按钮时,会出现一个画廊,我可以选择一张图片。当我返回应用程序时,没有任何警报——没有成功警报,也没有错误警报。但是,如果我再次单击该按钮,则会出现上次应该出现的警报,并且照片库会出现在其顶部。就好像getPicture()回调不想触发,直到下一次按下按钮。

这是踢球者:在我的应用程序的其他地方,我的getPicture()工作就像一个魅力(除了它使用PictureSourceType.CAMERA而不是PictureSourceType.PHOTOLIBRARY,并且该行不在 Backbone 视图中),回调在正确的时间触发。如果我复制并粘贴此视图中的工作代码行,回调会延迟,就像它们对上面的代码所做的一样。

这发生在 Android 上。我不确定 PhoneGap 和 Backbone 是否存在一些未记录的问题 - 如果有人对可能出现的问题有任何想法,我将不胜感激!

4

0 回答 0