我一直在尝试使用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,但仍然没有运气.该应用程序仍然可以显示捕获的图像,所以我知道它已经走得那么远,我只是不知道为什么它没有保存到图库.
解决方法
我一直坚持同样的问题但使用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); }