【发布时间】:2014-09-26 20:00:57
【问题描述】:
我正在尝试开发一个使用相机功能的PhoneGap 应用程序。我正在关注https://build.phonegap.com/plugins/768 的插件文档,但没有运气。每次我尝试使用该功能时,在我的 Android 设备上构建和测试时都会收到错误“ReferenceError: Camera is not defined”。
这是我的 index.html 的头部的样子:
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript" src="cordova.js"></script>
这是我用来使用相机功能的脚本:
<script>
function take_picture(){
try{
navigator.camera.getPicture(cameraSuccess, cameraError, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
}catch(e){
alert(e);
}
}
function cameraSuccess(imageData){
try{
$("#camera_image").attr('src', imageData);
}catch(e){
alert(e);
}
}
function cameraError(message){
try{
alert('Failed because: '+message);
}catch(e){
alert(e);
}
}
</script>
因为我使用的是PhoneGap Build,所以这里是我使用的 config.xml 标签:
<gap:config-file platform="android" parent="/manifest">
<uses-permission name="android.permission.CAMERA" />
</gap:config-file>
<feature name="http://api.phonegap.com/1.0/camera"/>
<feature name="Camera">
<param name="android-package" value="org.apache.cordova.CameraLauncher" />
<param name="ios-package" value="CDVCamera" />
</feature>
【问题讨论】:
-
仅对
phonegap.js/cordova.js使用其中之一,而不是同时使用两者。这可能会解决问题 -
另外,对于 phonegap 构建,您不需要将所有这些都添加到您的
config.xml,尝试删除您拥有的并添加<gap:plugin name="org.apache.cordova.camera" version="0.2.9" /> -
我采纳了您的建议,并取得了进展。感谢那。现在我收到错误“失败,因为:相机已取消”
-
好的,做了更多的研究,结果我不得不将我的 config.xml 的 AndroidManifest 修改中的启动模式值从“singleInstance”更改为“标准”。这似乎纠正了最后一个问题。感谢您的帮助。
标签: android ios cordova phonegap-build