使用带有getPicture和FILE_URI选项的Cordova / Phonegap API未显示相机图像

时间:2014-07-04 19:23:34

标签: ios cordova camera steroids

我遇到的这个问题与FILE_URI类似于另一篇文章中提出的问题:

- > Cordova 2.8.1: camera.getPicture with photolibarary source on ios

我尝试使用类似于Cordova文档中提供的示例的简单代码。

HTML:

<head>
  <link rel="stylesheet" type="text/css" href="application.css">
  <script src="http://localhost/cordova.js"></script>
  <script src="/components/steroids-js/steroids.js"></script>
  <script src="application.js"></script>
</head>
<body>
    <div>
        <br>
        <button type="button" onclick="takePhoto()">Take photo</button>
        <br>
        <hr>
        <p>Image should appear below:</p>
        <img id="image" width="100%" height="100%" src="">
        <hr>
        <p>Image URI should appear below:</p>
        <p id="URI"></p>
    </div>
</body>
</html>

JS:

    function onCameraSuccess(imageURI) {
        document.getElementById('image').src = imageURI;
        document.getElementById('URI').innerHTML = imageURI;
    }

    function onCameraFail(message) {
        alert('Failed because: ' + message);
    }

    function takePhoto() {
        navigator.camera.getPicture(onCameraSuccess, onCameraFail, { 
            quality: 50,
            destinationType: navigator.camera.DestinationType.FILE_URI,
            sourceType: 1,      // 0:Photo Library, 1:Camera, 2:Photo Album
            encodingType: 0,     // 0:JPG 1:PNG
            allowEdit: true,
            correctOrientation: true,
            saveToPhotoAlbum: true,     
        });
    }

我在iOS7上使用AppGyver的Cordova 3.1 API。我尝试使用navigator.camera与Camera,FILE_URI vs NATIVE_URI以及JPG与PNG的所有组合。这些组合都不起作用。但是我仍然得到正确的URI路径(文件:///var/mobile/Applications/.../tmp/cdvphoto024.jpg)但是当将此路径作为源时,图像将不会显示。它在CAMERA和PHOTOLIBRARY上使用DATA_URL时都有效,但这对我没用,因为我需要能够在LocalStorage中存储路径并将图像文件移动到永久位置。 不知道如何解决这个问题? 或者也许我可以使用saveToPhotoAlbum选项的解决方法,但后来我不知道如何检索新捕获的图像的路径,而无需再次通过getPicture手动选择。任何的想法? THX

0 个答案:

没有答案