我已经阅读过这里和谷歌上的每一个问题,并且在我的生活中无法想到这一点。我只是试图使用Phonegap拍照并存储URI。我正在尝试使用文档here中的示例。这是我试图打开相机的片段。
this.getPicture = function() {
navigator.camera.getPicture(self.onBackSuccess, self.onFail, {
quality: 20,
destinationType: Camera.DestinationType.FILE_URI
});
};
我已经检查/验证的内容
navigator.camera
是明确定义的。我可以关闭代码并调用“getPicture”函数,但这不会在设备,ADB仿真器或Ripple浏览器模拟器上拉出相机。phonegap local plugin list
时,其中一个结果是org.apache.cordova.camera 0.3.4 "Camera"
<feature name="http://api.phonegap.com/1.0/camera"/>
和<gap:plugin name="org.apache.cordova.camera" />
。不确定这是否相关,因为插件已经安装。<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);
打印出我之前提到过的数组而没有其他任何内容。
答案 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
}