Phonegap - 根本无法让相机出现

时间:2015-01-23 02:59:26

标签: android cordova camera phonegap-plugins

我已经阅读过这里和谷歌上的每一个问题,并且在我的生活中无法想到这一点。我只是试图使用Phonegap拍照并存储URI。我正在尝试使用文档here中的示例。这是我试图打开相机的片段。

this.getPicture = function() {
    navigator.camera.getPicture(self.onBackSuccess, self.onFail, {
      quality: 20,
      destinationType: Camera.DestinationType.FILE_URI
    });
};

我已经检查/验证的内容

  • Phonegap / Cordova本身已安装且工作正常。我可以毫无问题地构建我的应用程序。
  • 上面的
  • navigator.camera是明确定义的。我可以关闭代码并调用“getPicture”函数,但这不会在设备,ADB仿真器或Ripple浏览器模拟器上拉出相机。
  • 我的成功和错误回调都没有被调用过。但是,当我在getPicture函数中查看这些变量时,我可以看到存储在这些变量中的相应函数。
  • 我安装了Phonegap相机插件。当我运行phonegap local plugin list时,其中一个结果是org.apache.cordova.camera 0.3.4 "Camera"
  • 我的config.xml文件包含行<feature name="http://api.phonegap.com/1.0/camera"/><gap:plugin name="org.apache.cordova.camera" />。不确定这是否相关,因为插件已经安装。
  • 我的AndroidManifest.xml文件包含<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />行。

当我点击调用此功能的按钮时,它打印出来:

[20,1,1,-1,-1,0,0,false,false,false,null,0]

是camera.getPicture函数生成/使用的cameraOptions数组。

我能找到的所有东西都理所当然地认为调用navigator.camera.getPicture(success, failure, options);会打开相机这一事实,因此似乎没有太多关于解决我的特定问题的信息。这里的任何指针都将非常感激。

编辑:我在控制台中看到一个看起来可能相关的错误:

Could not find cordova.js script tag. Plugin loading may fail.

修改:我认为我的上次编辑不相关。这与加载插件文件本身有关,当我加载我的应用程序时,我可以在plugins文件夹中看到Camera.js文件。我可以在cameraExport.getPhoto函数中放置一个断点,它确实进入那里。然后它调用

exec(successCallback, errorCallback, "Camera", "takePicture", args);

打印出我之前提到过的数组而没有其他任何内容。

1 个答案:

答案 0 :(得分:0)

没有看到您的所有代码,我的猜测是使用this.self.导致问题。尝试这样的事情:

function getPicture() {
    navigator.camera.getPicture(onBackSuccess, onFail, {
       quality: 20,
      destinationType: Camera.DestinationType.FILE_URI
    });
};

function onBackSuccess() {
   //some code
}

function onFail() {
   //some code
}