注意:我是愚蠢的,因为我尝试了很多东西,所以保存到我的本地存储中,但我继续检查我的画廊(总是认为画廊会扫描所有图像)但不知何故它不在我的画廊所以我一直认为图像没有保存
我正在使用phonegap 2.9.0并使用相机API。 phonegap文档甚至提供了一个完整的html示例,您只需将代码复制并粘贴到www文件夹中,部署和摄像头就可以完美地工作,只是因为它不会将拍摄的图像保存到本地/ sd存储中。我想弄清楚,有人能帮我一个忙吗?
在发布此问题之前,我确实做了一些研究。 我找到了一个帖子:
Save image in local storage phonegap
但我尝试了那里的代码,不知何故它对我不起作用。 我还搜索了一些网站和帖子,其中很多只是提到添加了saveToPhotoAlbum:true,这在phonegap文档中提到过,我尝试过根本没用。
我查看了phonegap 2.9.0文档,看到了权限,所以我相信我也需要添加这些代码,所以我做了......
在config.xml中我添加了
<plugin name="Camera" value="org.apache.cordova.CameraLauncher" />
我添加了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在index.html中我刚刚使用了phonegap的完整示例。提供2.9.0。 我认为这里必须粘贴它,但我相信这是我需要在代码中添加内容的地方..
// A button will call this function
//
function capturePhoto() {
// Take picture using device camera and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail,{ quality: 50,
destinationType: destinationType.DATA_URL, saveToPhotoAlbum: true });
}
我认为通过添加saveToPhotoAlbum: true
会起作用,但似乎不起作用。
有人可以帮我一把吗?文档看起来很容易,但是当无法弄清楚什么是错误时会感到沮丧(:
答案 0 :(得分:5)
更改此
destinationType: Camera.DestinationType.DATA_URL
到
destinationType: Camera.DestinationType.FILE_URI
它将返回imageuri,为了获得确切的位置,你可以使用phonegap中的文件系统api
window.resolveLocalFileSystemURI(imageURI, resolveOnSuccess, fsFail);
function resolveOnSuccess(entry) {
var fileuri = entry.toURL();
//console.log(fileuri);
}
答案 1 :(得分:0)
1.destinationType:Camera.DestinationType.DATA_URL
DATA_URL仅返回base64字符串,此处图像不存储在相册中;
2.destinationType:Camera.DestinationType.FILE_URL
FILE_URL返回图片网址。这里存储在相册中的图像。
如果你需要两者我的意思是base64字符串和存储在相册中的图像。你需要做点什么
从相机成功获取网址,然后在phonegap中使用文件API - FileReader(readAsDataURL)概念