2012-07-13 3 views
0

Je travaille sur l'ajout de certaines fonctionnalités spécifiques à l'application mobile sur mon site mobile. Actuellement, l'application est plus ou moins juste un emballage.Appareil photo Phonegap prendre une photo

public class Activity extends DroidGap { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.main); 
     if (this.isOnline()) { 
      super.loadUrl("http://mysite.com"); 
     } else { 
      super.loadUrl("file:///android_asset/www/offline.html"); 
     } 
    } 

    public boolean isOnline() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
     if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
      return true; 
     } 
     return false; 
    } 
} 

Le problème se pose avec le javascript suivant. Si je remplace super.loadUrl ("http://mysite.com"); avec super.loadUrl ("file: ///android_asset/www/online.html") et lancez le javascript suivant, cela fonctionne très bien. Mais si je l'exécute sur mysite.com, il continue à émettre l'exception suivante:

07-13 12: 25: 12.762: E/Web Console (28251): Impossible de charger la ressource locale: file: // /data/data/com.my.app/.Pic.jpg?1342171460960 at null: 0

Des pensées sur ce que je fais mal?

var camera = (function(){ 

     var camera = { 
      settings : { 
       quality: 50, 
      } 
     }; 

     var error = function(message) { 
      console.error("Error happened while trying to get a picture", message); 
     }; 

     document.addEventListener("deviceready", function() { 

      camera.settings.destinationType = navigator.camera.DestinationType.FILE_URI;  

      camera.fromPhone = function() { 
       this.settings.sourceType = navigator.camera.PictureSourceType.CAMERA; 
       return this; 
      }; 

      camera.fromLibrary = function() { 
       this.settings.sourceType = navigator.camera.PictureSourceType.PHOTOLIBRARY; 
       return this; 
      }; 

      camera.get = function(callback) { 
       navigator.camera.getPicture(callback, error, camera.settings); 
      }; 

     }, false); 


     return camera; 

})(); 

//Later, at a click event 
camera.fromPhone().get(function(imageURI){ 
    alert("imageURI" + imageURI) 
    $("#largeImage").attr("src", imageURI); 
}); 
+0

Utilisez-vous Phonegap pour un site Web ou une application mobile? Si ce dernier, pour quelle plate-forme développez-vous? Ceci est important car vous devez parfois autoriser explicitement le chargement de données externes dans les applications. Dans iOS, on le spécifierait dans Appname-Info.plist sous types d'URL. En outre, je ne pense pas que le titre de votre question correspond au problème réel. – Rex

Répondre

Questions connexes