删除phonegap android中的所有联系人

时间:2014-08-19 10:02:34

标签: jquery cordova

我想通过使用phonegap删除Android设备上的所有联系人...请为我提供有效的代码。

我已经尝试逐个删除,但代码非常混乱.. 这对我没有用。

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


    function onDeviceReady() {
        // specify contact search criteria
        var options = new ContactFindOptions();
        options.filter = "";    
        options.multiple = true;      
        navigator.contacts.find("*", onSuccess, onError, options);
    }


    function onSuccess(contacts) {

      for (i=0;i<contacts.length;i++) {
        //window.alert("ID = " + contacts[i].id);
        document.write(contacts[i].displayName);
        tel = contacts[i].phoneNumbers;
        if (tel== null){
document.write("Sense telefon");
        }else{
                for (j=0;j<contacts[i].phoneNumbers.length;j++) {
            if (contacts[i].phoneNumbers != null &&
contacts[i].phoneNumbers != 'undefined') {
                document.write(" "+contacts[i].phoneNumbers[j].value);
            }
        }
        }
        //document.write('<button id='+i+' onClick="reply_click(this.id,contacts);">Borrar</button>');
        var button = document.createElement("button"); 
        button.id = i; 
        button.onclick = function() { reply_click(this.id, contacts); }; // append button to DOM
        document.body.appendChild(button);
        document.write(contacts[i].id);
        document.write("<br/>");
    }
    };

    function reply_click(clicked_id,contacts)
    {

        window.alert(clicked_id);
        window.alert(contacts);
         for (i=0;i<contacts.length;i++) {
         if(i==clicked_id){
         try{
            persona = contacts[i];
            persona.remove(onRemoveSuccess,onRemoveError);
            window.alert("Contacte Borrat");
            setTimeout("location.href='buscacont.html'", 5000);
            }catch(err){
            window.alert(err);
            }
            }
         }

    }
    function onError(contactError) {
        window.alert('onError!');
    }
    function onRemoveSuccess(contacts) {
         window.alert("Removal Success");
    }


    function onRemoveError(contactError) {
         window.alert("Error = " + contactError.code);
    }  

日志控制台没有显示有用的内容。 任何建议都会被证实。

谢谢

1 个答案:

答案 0 :(得分:1)

var app ={
deleteAllTheContacts: function() {
        var deleteContact = function(contacts) {
            console.log("length = " + contacts.length);
            // No contacts left, stop saving
            if (contacts.length === 0) {
                console.log("All contacts removed");
                return;
            }

            var contact = contacts.pop();
            contact.remove(function() {
                deleteContact(contacts);
            }, null);
        };

        navigator.contacts.find(["*"], deleteContact, app.onError, {
            "multiple": true
        });
    }

}

您可以将此功能称为 app.deleteAllTheContacts(); 它会自动搜索您的所有内容 接触并逐个移除它们直到您的接触长度变为零。