我正在尝试使用getPicture()
来允许用户在单击Backbone视图中的按钮时选择照片/视频。这是我的视图代码中的相关部分:
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是否存在一些无证问题 - 如果有人对可能出现的问题有任何想法,我会感激不尽!