一直在测试iPhone 4S和iPad Mini上的Cordova应用程序,它有这种奇怪的行为,当我使用此代码启动相机功能时:
$(document).on('click', '.camera', function() {
if (!navigator.camera) {
alert("Camera API not supported", "Error");
return;
}
var options = {
quality: 65,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: 1,
// 0:Photo Library, 1=Camera, 2=Saved Album
encodingType: 0,
// 0=JPG 1=PNG
correctOrientation: true,
targetWidth: 700,
targetHeight: 700
};
function addHiddenElement(elementId, imgData) {
$("<input>", {
type: "hidden",
name: "imagedata" + elementId,
id: "imagedata" + elementId,
value: "data:image/jpeg;base64," + imgData
}).insertAfter("#" + elementId);
}
function imageData(elementId) {
navigator.camera.getPicture(function(imgData) {
addHiddenElement(elementId, imgData);
//return imgData;
}, function() {
alert('Error, camera functionality not working');
}, options);
}
imageData(this.id);
});
一半时间它工作正常,但另一半没有任何反应。但是,如果我回到iOS主屏幕,然后再次返回应用程序(即不重新启动应用程序,只需来回切换),那么相机就能正常工作。
我怀疑这可能是一个记忆问题,但不知道该怎么办。
有什么想法吗?