cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frank He <hexuf...@gmail.com>
Subject cordova camera.getpicture is not working with backbone/requireJS
Date Fri, 26 Sep 2014 15:13:25 GMT
This is a very annoying issue, I am using cordova with backbone to build
hybrid solution, and I want user to select photo to upload. please see
following code:

events:{
            "click #btnPhotos": "getPhoto",
            "click #btnCamera": "capturePhoto"
        },

   getPhoto: function() {
             // Retrieve image file location from specified source
             _self = this;
             alert (navigator.camera)
             alert (_self.uploadPhoto)
             navigator.camera.getPicture(
                         _self.uploadPhoto,
                         function(message){
                             util.alert('Failed to get pictures');
                         },
                         {
                             quality: 50,
                             destinationType:
navigator.camera.DestinationType.FILE_URI,
                             sourceType:
navigator.camera.PictureSourceType.PHOTOLIBRARY
                         }
                     );
         },
uploadPhoto: function(imageURI) {
    alert ('got htere'); alert (imageURI)
}


this is part of code in a view, I want to trigger the function and the
upload the selected photo.

whenever I run, I checked LogCat, error is:

09-25 02:46:08.685: D/CordovaLog(8340):
file:///android_asset/www/js/libs/backbone.js: Line 996 : Uncaught Error:
Backbone.history has already been started

I suspect that whenever user selected a photo, Cordova just simulate the
click on Back button, but this action will trigger backbone route to be
executed again. And the call back function never get called and I can never
get the imageURI.

If I move this out off backbone/requireJS, everything worked fine.

I believe this is a very popular issue and many ones have used cordova with
backbone/requireJS, how do you overcome this issue?

Thanks in advance.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message