4

我一直在尝试使用 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但仍然没有运气。该应用程序仍然可以显示捕获的图像,所以我知道它已经走了那么远,我只是不知道为什么它没有保存到画廊。

4

1 回答 1

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);
}
于 2014-05-18T11:52:36.470 回答