如何检索地址簿联系人照片并在WebView中显示?

时间:2014-10-01 08:54:44

标签: android cordova ibm-mobilefirst

我想从地址簿中访问联系人的照片,并将其显示在HTML中。

我的应用程序基于使用Cordova的IBM Worklight,因此该应用程序基于HTML,CSS和JS。
我已设法显示地址簿中的完整联系人列表。但是,我不知道如何加载联系人照片。

我可以在原生中加载联系人照片,使用Base64Encoded进行编码 字符串并将其传递给HTML。但是,这种方法看起来真的很讨厌。 如果用户有200个联系人,应用程序肯定会 崩溃。

我只想使用联系人ID从HTML加载每个联系人的联系人照片,就像我们在原生Android应用程序中一样。

感谢。

1 个答案:

答案 0 :(得分:2)

使用Worklight 6.2中的以下代码,我在地址簿中搜索了全名中带有“Adar”的所有联系人,并在HTML中插入了他们的全名和照片。

这是在iOS中测试的,但应该与Android类似。您可能需要在android \ native \ AndroidManifest.xml中添加以下权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />


common \ index.html

BODY标记中的 HTML:
<div id="contacts">
</div>

JavaScript:常见\ js \ main.js

的内容
function wlCommonInit(){
    var options      = new ContactFindOptions();
    options.filter   = "Adar";
    options.multiple = true;

    var fields =  ["name","photos"];

    navigator.contacts.find(fields, onSuccess, onError, options);
}

function onSuccess(contacts) {
    for (var i = 0; i < contacts.length; i++) {
        $("#contacts").append(
            "<p><b>Contact name: </b>" + contacts[i].name.formatted + "</p><br/>" +
            "<img src=" + contacts[i].photos[0].value + "/><br/><br/>"
        );
    }
};

function onError(contactError) {
    alert('onError');
};