【问题标题】:PhoneGap Script reads contacts correctly until I include photos (avatars)PhoneGap 脚本正确读取联系人,直到我包含照片(头像)
【发布时间】:2012-07-21 23:31:54
【问题描述】:

以下脚本应该返回联系人列表以及他们的电子邮件、电话号码和头像(照片​​)。

当我删除头像(照片​​)检索代码时,它就像一个魅力,我将它添加回来的那一刻。脚本中断。有没有人尝试通过 phonegap 显示联系人照片?

<!DOCTYPE html>
<html>
<head>
<title>Contact Example</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
    <script type="text/javascript" charset="utf-8">

        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);

        // Cordova is ready
        //
        function onDeviceReady() {
            // specify contact search criteria
            var options = new ContactFindOptions();
            options.filter="";          // empty search string returns all contacts
            options.multiple=true;      // return multiple results
            filter = ["displayName", "name", "phoneNumbers"];

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

        // onSuccess: Get a snapshot of the current contacts
        //
        function onSuccess(contacts) {
            console.log(contacts.length);
            for (var i=0; i<contacts.length; i++) {
                var LI=$("#list").append('<li>'+contacts[i].displayName+'</li>');
                if (contacts[i].phoneNumbers) {
                    for (var j=0; j<contacts[i].phoneNumbers.length; j++) {
                        $(LI).append('<span>'+contacts[i].phoneNumbers[j].value+'</span><Br/>');
                    }
                }
                if (contacts[i].emails) {
                    for (var j=0; j<contacts[i].emails.length; j++) {
                        $(LI).append('<span>'+contacts[i].emails[j].value+'</span><br/>');
                    }
                }
                if (contacts[i].photos) {
                    for (var j=0; j<contacts[i].photos.length; j++) {
                        alert(contacts[i].photos[j].value);
                        //$(LI).append('<span>'+contacts[i].photos[j].value+'</span><br/>');
                    }
                }
                /*if (contacts[i].photos) {
                    for (var j=0; j<contacts[i].photos.length; j++) {
                        $(LI).append('<img src="'+contacts[i].photos[j].value+'"/><br/>');
                    }
                }*/
            }
        };

        // onError: Failed to get the contacts
        //
        function onError(contactError) {
            alert('onError!');
        }

    </script>
</head>
<body>
    <h1>Example</h1>
    <p>All Contacts in a list</p>
    <ul id="list">
    </ul>
</body>

【问题讨论】:

    标签: javascript jquery ios cordova


    【解决方案1】:

    您的过滤器不包含“照片”字段。如果没有指定,则不会填充照片数组。

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多