我一直在尝试使用PhoneGap功能用我的Android手机拍照并将其保存到手机的图库中。我没有任何问题让他们的完整示例项目启动并运行,但代码永远不会保存图像。我们已经在Iphone上测试过没有任何问题,所以我想知道我做错了什么,或者这是另一个Android问题。
以下是我根据我在网上看到的步骤。
添加到app / res / xml / config.xml文件<plugin name="Camera" value="org.apache.cordova.CameraLauncher" />
添加到清单文件
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
更改getPicture()中的选项以包含“saveToPhotoAlbum”选项
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
destinationType: destinationType.DATA_URL, saveToPhotoAlbum: true });
我也尝试将目的地类型更改为 FILE_URI ,但仍然没有运气。该应用程序仍然可以显示捕获的图像,所以我知道它已经走得那么远,我只是不知道为什么它没有保存到图库。
答案 0 :(得分:1)
我一直坚持同样的问题,但使用jquery mobile。我还复制了apache cordova相机插件的工作示例。我只是在他们提供的.js文件中注释了整个代码并粘贴了从堆栈溢出复制的以下代码。它工作得很好,但有一个问题,图像将保存在底部,有一些日期为1970年,但它被保存。代码如下。
$('#capturePhotoButton').on('click', function () {
alert('capturePhotoButton click() called');
cameraGetPicture();
});
function cameraGetPicture() {
navigator.camera.getPicture(imageReceived, cameraFail, {
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
allowEdit: false,
saveToPhotoAlbum: true,
correctOrientation: true
});
}
function imageReceived(imageURI) {
var image = document.querySelector('img#smallImage');
image.src = imageURI;
imageURI = new steroids.File({
path: "image.png",
relativeTo: steroids.app.userFilesPath
});
}
function cameraFail(message) {
alert("Camera error: " + message);
}