Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

CrazyLOL

Plugin de Contatos do Cordova

Recommended Posts

Galera, estou usando o plugin do phoengap para ter acesso a agenda do celular, ate ai ok.

Estou com problema no seguinte item..

Fiz um script que atualiza todos os meus telefones da agenda adicionando o ddd da minha cidade.. o problema é que tenho em minha agenda 500 contatos..

 

Quando eu faço update de 20 contatos apenas atualiza certinho, porem quando mando atualizar os 500 o aplicativo carrega mas nao atualiza, no meu caso fica na tela de loading...

 

Ja fiz de tudo, coloquei setTimeout, coloquei callback, e muitas outras coisas que ja esqueci porem o aplicativo trava e nao atualiza.

Como disse o mesmo codigo para 20 contatos atualiza normal negocio é quando tenho muitos contatos.

var Contato = {
    atualizarContatos: function(cb){                

        // find all contacts with 'Bob' in any name field
        var fields       = [navigator.contacts.fieldType.displayName];

        navigator.contacts.find(fields, function(contacts){

            //myApp.showPreloader("Fazendo backup dos dados, antes de atualizar");

           // Contatos.backup(contacts, function(){
                myApp.showPreloader("Atualizando os números de telefones");
                Contatos.alterarContatos(contacts, function(totalSucesso, totalErro){
                    //console.log(totalSucesso + ' erro ' + totalErro);
                    myApp.hidePreloader();
                    cb(totalSucesso, totalErro);                    
                });

           // });            

        }, function(error){
            console.error(error);
            myApp.hidePreloader();
            cb(error);

        });

  },

    alterarContatos: function(telefones, cb){

    var totalGeral = telefones.length, totalAtualizado = 0, totalErro = 0, hora = 0;    
    var atualizou = 0;

    for(var i = 0; i < 100; i++){
        var objContato = telefones[i];

        console.log("Nome " +objContato.name.formatted); 

        if(objContato.phoneNumbers){
            for(var a = 0; a < objContato.phoneNumbers.length; a++){
                var objNum = objContato.phoneNumbers[a];
//aqui poem o 65 uma outra funcao
               Funcoes.corrigirNumero(Funcoes.soNumero(objNum.value),function(novoNumero, atualiza){
                    if(atualiza == true){
                        console.log("New Number " +novoNumero);  
                        atualizou =  atualizou +1;  
                        objNum.value = novoNumero;                                                                                   

                    }else{

                    }            
                });
            }
        }


        objContato.save(function(saveSuccess) {
                            // totalAtualizado++;
                            console.log("Success - ");
                        }, function(saveError){
                            // totalErro++;  
                            console.log("Erro...");                                                      
                           // cb(atualizou, 1);                       
                        }); 
       // sleep(1000);   

    }
    //callback
    cb();


  }

}

Contato.atualizarContatos(function(){
    alert(1);
})

Eu estava testando com os console para o log e vi que ele passa em todas as etapas porém nao esta entrando no metodo da .save do plugin.

 

Se alguem tiver alguma solução extra para um problema assim estou aberto a sugestoes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.