如何使用phonegap阅读和显示本地联系人列表照片

时间:2014-01-10 13:23:46

标签: cordova

我正在建立Phonegap。 非常漂亮,因为我找到了如何建立联系人列表。我'已经 完成了教程,现在想要添加它来更好地学习 PhoneGap的。

我想要做的是在上面显示联系人的主要照片 项目详细信息页面联系人照片返回" / var /的网址 文件夹/ 45 / xfgjqr4j59144x8gzq4gdrpw0000gn / T / photo_004.jpg&#34 ;.我的 问题是我该如何实际显示?我假设/ 无法通过img标签访问var目录(因为图像不是 显示),但我认为该文件可通过Phonegap访问 API。我进一步假设它是以某种方式通过File API。那' S 我的思路细节在哪里,我不能再进一步了。

任何人都可以帮助我回到正轨吗?任何人都有如何做的例子 显示联系人列表中的图像?

1 个答案:

答案 0 :(得分:0)

点击PhoneGap API File documentation上的此链接。您可以将文件读取为base64字符串,并将其嵌入HTML img标记:

<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />

也许这样,使用PhoneGap 2.5,例如:

function loadImage(imgId, fileName){
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
        function(fileSystem){
            fileSystem.root.getFile(fileName, null,
                function(fileEntry) {
                    fileEntry.file(
                        function(file){
                            var reader = new FileReader();
                            reader.onloadend = function(evt) {
                                var image = document.getElementById(imgId);
                                image.src = "data:image/png;base64," + evt.target.result; //You must specify the image format: png, gif, ...
                             };
                             reader.readAsDataURL(file);
                        }
                        , fail);
                }
                , fail);
        }
        , fail);
}

function fail(evt) {
    console.log(evt.target.error.code);
}

然后,使用img加载id="contact1"节点的图像:

loadImage("contact1", "/var/folders/45/xfgjqr4j59144x8gzq4gdrpw0000gn/T/photo_004.jpg");

这只是一个模糊的想法,我还没有测试过它。