PhoneGap 的 getPicture() 调用不会保存到 Android 手机上的图库
Posted
技术标签:
【中文标题】PhoneGap 的 getPicture() 调用不会保存到 Android 手机上的图库【英文标题】:PhoneGap's getPicture() call does not save to the Gallery on Android Phone 【发布时间】:2013-06-24 19:42:31 【问题描述】:我一直在尝试使用 PhoneGap 功能用我的 android 手机拍照并将其保存到手机的图库中。我没有任何问题让他们的完整示例项目启动并运行,但代码永远不会保存图像。我们在 Iphone 上进行了测试,没有任何问题,所以我想知道是我做错了什么还是这是另一个 Android 问题。
Phone Gap Example
以下是我根据我在网上看到的情况采取的步骤。
添加到 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,但仍然没有成功。该应用程序仍然可以显示捕获的图像,所以我知道它已经到了那么远,我只是不知道为什么它没有保存到图库中。
【问题讨论】:
我不再熟悉 phonegap,但 phonegap 尝试用来创建图像的路径可能不存在,或者在创建图像期间可能无法访问该文件路径,所以图像数据被保存到一个位图中,该位图被放在屏幕上,但是当 phonegap 试图将图像保存到文件时它失败了。您可能想编写自己的本地方法来保存图像。我不知道在没有sdcard之类的情况下phonegap方法是否会自动保存到appdata,所以你自己的native方法可能是最好的方法。 你试过this吗?我试过了,它没有任何问题。将movePic()
函数放在成功处理程序的末尾 - onPhotoDataSuccess()
。将FILE_URI
作为参数传递给movePic(FILE_URI)
函数调用。看看它是否适合你。
【参考方案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);
【讨论】:
如果您有不同的问题而不是问题的答案,请考虑发布一个新问题。以上是关于PhoneGap 的 getPicture() 调用不会保存到 Android 手机上的图库的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap navigator.camera.getPicture 不触发回调
我如何从PhoneGap camera.getPicture获取File对象?
PhoneGap 的 getPicture() 调用不会保存到 Android 手机上的图库
PhoneGap 2.3:Cordova 拍照 API (camera.getPicture) API 返回 onDestory