контакты.найти не работает на Android 4 (phonegap)

Я работаю над Android-приложением (phonegap), которое читает контакты с телефонов, он прекрасно работает на android 5 и выше, но когда дело доходит до android 4 OS его не в состоянии читать контакты с телефона, поэтому я хочу спросить, если кто-то испытал эту проблему во время работы с контактами.найти в phonegap.

document.addEventListener("deviceready", onDeviceReady, true); //the onDeviceReady function takes place when the app starts

function onDeviceReady() {
// find all contacts displayName, Name and phoneNumbers
var fields       = ["displayName", "name", "phoneNumbers"];
var options      = new ContactFindOptions();
options.filter   = "";
options.multiple = true;
navigator.contacts.find(fields, onSuccess, onError, options);
	var currentdate = new Date();
    var datetime = currentdate.getDate() + "-"+(currentdate.getMonth()+1) 
    + "-" + currentdate.getFullYear() + "T" + currentdate.getHours() + ":" 
    + currentdate.getMinutes() + ":" + currentdate.getSeconds();
	alert(datetime);
}	

1 ответ

  1. Я создал образец для вас и протестирован в android версии 4.1.1, 4.2.2, 4.4.4 и его работа отлично.

    Код является ::

    сначала добавьте плагин контакта
    cordova plugin add cordova-plugin-contacts

    а потом пишем в индексе.формат html ::

    <body>
        <h2>Contacts List</h2>
        <div id="mobile"></div>
        <div id="email"></div>
    
        <script src="cordova.js"></script>
    
        <script type="text/javascript">
            document.addEventListener("deviceready", init, false);
            function init() {
                navigator.contacts.find([navigator.contacts.fieldType.displayName],gotContacts,errorHandler);
            }
    
            function errorHandler(e) {
                console.log("errorHandler: "+e);
            }
    
            function gotContacts(c) {
                console.log("gotContacts, number of results "+c.length);
    
                mobileDiv = document.querySelector("#mobile");
                emailDiv = document.querySelector("#email");
    
                /* Retriving phoneNumbers */
                for(var i=0, len=c.length; i<len; i++) {
                    if(c[i].phoneNumbers && c[i].phoneNumbers.length > 0) {
                        mobileDiv.innerHTML += "<p>"+c[i].displayName+"<br/>"+c[i].phoneNumbers[0].value+"</p>";
                    }
                }
    
                /* Retriving Email */
                for(var i=0, len=c.length; i<len; i++) {
                    if(c[i].emails && c[i].emails.length > 0) {
                        emailDiv.innerHTML += "<p>"+c[i].emails[0].value+"</p>";
                    }
                }
            }
        </script>
    </body>