无法在cordova中获得联系人

时间:2014-05-25 19:13:29

标签: android cordova

我使用通过CLI安装的Cordova和Contacts插件获得以下代码。

我要做的是阅读手机中的所有联系人。使用下面的代码,我只得到一个弹出警报,因为" null"而不是显示名称。弹出窗口也只出现一次。

CLI会自动更新Config.xml和清单文件,以包含所需的内容。

我使用的是Cordova 3.5.0版本。我应该包含任何其他JS文件吗?

    <script type="text/javascript" src="cordova.js"></script>   

    <script type="text/javascript">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
            var options = new ContactFindOptions();
            options.filter = "";
            var fields = ["displayName", "name"];
            navigator.contacts.find(fields, onSuccess, onError, options);
        }

        function onSuccess(contacts) {
            for (var i = 0; i < contacts.length; i++) {
                alert(contacts[i].displayName); //popup here comes once as null
            }
        }

        function onError(contactError) {
            alert('onError!');
        }
    </script>

2 个答案:

答案 0 :(得分:1)

试试这些代码......它适合我。

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="cordova.js"></script>

document.addEventListener("deviceready", onDeviceReady, false);

                    function onDeviceReady(){
                        loadContacts();
                        }

                function loadContacts()
                {
                    var options = new ContactFindOptions();
                    options.filter="";
                    options.multiple=true;
                    filter = ["*"];
                    navigator.contacts.find(filter, onSuccess, onError, options);
                }

                function onSuccess(contacts) {
                    $('#getContactList').html('');
                    var listItem="";
                    //alert(contacts.length);
                    for (var i = 0; i < contacts.length; i++) {
                        //get name from contacts
                        alert(contacts[i].name.givenName) ;
                    }

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

答案 1 :(得分:0)

添加以下选项对我有用。除此之外,我现有的代码很好。 displayName工作正常。

options.multiple=true;