簡體   English   中英

科爾多瓦PickContact不起作用

[英]Cordova pickcontact doesn't work

我嘗試通過Cordova插件聯系人來選擇聯系人,但是我仍然有一個錯誤。 我的按鈕#pickContact可以正確打開我可以點擊聯系人的活動。 但是當我點擊一個時,什么也沒發生。 當我返回頁面時,出現錯誤消息OPERATION_CANCELLED_ERROR(代碼6)。

我真的不明白問題出在哪里。 我在Android棉花糖上運行我的應用程序。 我想到了權限問題,但是我的應用程序可以通過navigator.contacts.find正確找到聯系人,但是不能通過navigator.contacts.pickContact找到聯系人

這是我的代碼:

 function pickContact() { navigator.contacts.pickContact(function(contact){ alert('ok !'); },function(err){ alert('bug !' + err); console.log('Error: ' + err); }); } var app = { // Application Constructor initialize: function() { this.onDeviceReady(); if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) { document.addEventListener("deviceready", this.onDeviceReady, false); } else { this.onDeviceReady(); } }, onDeviceReady: function() { $("#pickContact").click(pickContact); }, // Update DOM on a Received Event receivedEvent: function(id) { } }; app.initialize(); 
謝謝你的幫助 !

根據聯系人插件的參考文檔,您選擇的聯系人將設置為JSON.stringify(contact)您可以alert它查看選擇了哪些聯系人(我已經使用了此插件,但是我不需要此功能來選擇任何單個聯系人,因此(不確定是否有完成按鈕),然后按[完成]或[確定]按鈕,這會將您重新導向到另一個功能,您可以在該功能上獲得該聯系人或滿足您的下一個要求。

function pickContact() {
    navigator.contacts.pickContact(function(contact){
        alert(JSON.stringify(contact));
        //This is added by me, on done button click or single selection
        setContacts(contact);
    },function(err){
        alert('bug !' + err);
        console.log('Error: ' + err);
    });
}
//This is added by me
function setContacts(ct)
{
    alert(JSON.stringify(ct));
    $("#contactlist").append(ct);

    //or

    var getData = JSON.parse(ct);
    if(getData.length > 1)
    {
        for(i=0;i<getData.length;i++)
        {
            $("#contactlist").append(getData[i]);
        }
    }
}

讓我知道我是對還是錯。

非常感謝您的回答。 不幸的是,您的代碼不適用於我,但我發現該怎么做:

pickcontact打開您的本地應用程序“聯系人”時,您的cordova應用程序將在后台刪除。 在android上,這意味着您失去了應用程序的狀態,因此有一個錯誤。 要解決此問題,您需要在js文件上添加onresume事件,如下所示:

 var app = { // Application Constructor initialize: function() { this.onDeviceReady(); if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) { document.addEventListener("deviceready", this.onDeviceReady, false); } else { this.onDeviceReady(); } }, onDeviceReady: function() { $("#pickContact").click(pickContact); }, onResume: function(resumeEvent) { //alert('onResume'); }, // Update DOM on a Received Event receivedEvent: function(id) { } }; app.initialize(); 

之后,您可以使用以下功能檢索選擇的聯系人:

 function pickContact() { navigator.contacts.pickContact(function(contact){ $("#divTest").append('<p>The following contact has been selected:' + JSON.stringify(contact)); },function(err){ alert('bug !' + err); console.log('Error: ' + err); }); } 

因此,就像每次編程一樣,當您知道答案時,這很容易。 但是,當您不知道時,您就會失去工作時間……

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM