如何使用phonegap-2.9.0相机和Android设备存储?

时间:2013-11-19 07:53:51

标签: android cordova camera storage

注意:我是愚蠢的,因为我尝试了很多东西,所以保存到我的本地存储中,但我继续检查我的画廊(总是认为画廊会扫描所有图像)但不知何故它不在我的画廊所以我一直认为图像没有保存

我正在使用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" />

AndroidManifest中的

我添加了

<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会起作用,但似乎不起作用。

有人可以帮我一把吗?文档看起来很容易,但是当无法弄清楚什么是错误时会感到沮丧(:

2 个答案:

答案 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)概念

    1. FILE_URL更好地为Android DATA_URL崩溃应用程序有时会出现内存错误