0

나는 전화에서 연락처를 읽는 안드로이드 애플 리케이션 (phonegap)에서 일하고 있는데, 그것은 안드로이드 5 이상에서 작동하지만 안드로이드 4 OS에서는 불가능하다. phonegap에서 contacts.find로 일하는 동안 누군가가이 문제를 경험했는지 묻고 싶다면 전화에서 연락처를 읽으십시오. contacts.find does not work on andriod 4 (phonegap)

+0

당신이 코드를 게시 할 수 다음 cordova plugin add cordova-plugin-contacts

및 플러그인에 연락처를 추가? –

+0

방금 ​​게시했습니다. –

답변

0

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); 
 
\t var currentdate = new Date(); 
 
    var datetime = currentdate.getDate() + "-"+(currentdate.getMonth()+1) 
 
    + "-" + currentdate.getFullYear() + "T" + currentdate.getHours() + ":" 
 
    + currentdate.getMinutes() + ":" + currentdate.getSeconds(); 
 
\t alert(datetime); 
 
} \t

나는 당신을 위해 샘플을 생성하고 안드로이드 버전 4.1.1, 4.2.2, 4.4.4 및 그 작업을 완벽하게 벌금을 테스트했다.

코드입니다 :

가 먼저 index.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> 

+0

확인해 보겠습니다. –

+0

나는 document.addEventListener ("deviceready", init, false)의 useCapture를 발견했습니다. 특별한 이유가 있습니까 false로 설정되어 있습니까? –

+0

No. 코드에 영향을 미치지 않습니다. – Hiten