我使用Build.PhoneGap网站上的示例代码从手机中捕获图像,然后获得一个"无法调用方法' getPicture'未定义"错误。
在index.html和以下config.xml中使用以下示例代码我将压缩目录上传到PhoneGap,在Thunderbolt Android设备上安装该应用程序,并在' navigator.camera中的try catch中安装。 Getpicture中' capturePhoto()函数的一部分我得到了错误。有谁知道这可能会发生什么?提前谢谢。
完整示例的网址:
http://docs.phonegap.com/en/1.0.0/phonegap_camera_camera.md.html
索引代码(不予评论):
<!DOCTYPE html>
<html>
<head>
<title>Capture Photo</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
var pictureSource; // picture source
var destinationType; // sets the format of returned value
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
function onPhotoDataSuccess(imageData) {
var smallImage = document.getElementById('smallImage');
smallImage.style.display = 'block';
smallImage.src = "data:image/jpeg;base64," + imageData;
}
function onPhotoURISuccess(imageURI) {
var largeImage = document.getElementById('largeImage');
largeImage.style.display = 'block';
largeImage.src = imageURI;
}
function capturePhoto() {
try
{ //this throws the error
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 });
} catch(exc){
alert(exc.message);
}
}
function capturePhotoEdit() {
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20, allowEdit: true });
}
function getPhoto(source) {
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
destinationType: destinationType.FILE_URI,
sourceType: source });
}
function onFail(message) {
alert('Failed because: ' + message);
}
</script>
</head>
<body>
<button onclick="capturePhoto();">Capture Photo</button> <br>
<button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br>
<button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
<button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>
<img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
<img style="display:none;" id="largeImage" src="" />
</body>
</html>
配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.phonegap.SampleImg"
versionCode="10"
version = "1.1.0">
<!-- versionCode is optional and Android only -->
<name>PhoneGap SampleImg</name>
<description>
An SampleImg for phonegap build docs.
</description>
<author href="https://build.phonegap.com" email="myemail@somedomain.com">
My Name
</author>
<!-- to enable individual permissions use the following examples -->
<feature name="http://api.phonegap.com/1.0/battery"/>
<feature name="http://api.phonegap.com/1.0/camera"/>
<feature name="http://api.phonegap.com/1.0/contacts"/>
<feature name="http://api.phonegap.com/1.0/file"/>
<feature name="http://api.phonegap.com/1.0/geolocation"/>
<feature name="http://api.phonegap.com/1.0/media"/>
<feature name="http://api.phonegap.com/1.0/network"/>
<feature name="http://api.phonegap.com/1.0/notification"/>
</widget>
答案 0 :(得分:3)
原来你需要有这个参考
<script src="phonegap.js" type="text/javascript" charset="utf-8"></script>
而不是
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
如果有其他人遇到此版本,则会将相应的phonegap.js文件与您定位的平台相匹配。
答案 1 :(得分:0)
从http://phonegap.com/download/安装cordova的最新版本并添加到您的文件中。我希望你的问题得到解决。对于科尔多瓦的旧版本,这个方面可能不会支持。
答案 2 :(得分:0)
@Kevin Shah - phonegap.js不是您需要下载或包含在目录中的文件。根据您的应用程序所针对的平台(iOS,Adroid等),phonegap将为您插入正确的“phonegap.js”文件。他们这样做是因为每个平台的行为都不同 - 所以他们需要不同的.js文件。
您需要做的就是包含通用脚本点击,它会自动指向phonegap为所需平台插入的正确文件。