2013-11-28 3 views
0

У меня проблема с контактами cordova/phonegap.
Это код, я пытаюсь выполнить, я поставил во внешнем файла JavaScript:Uncaught ReferenceError: ContactFindOptions не определен

function onDeviceReady() { 
// find all contacts 
var options = new ContactFindOptions(); 
options.filter = "*"; 
var fields = ["displayName", "name"]; 
navigator.contacts.find(fields, onSuccess, onError, options); 
} 

// onSuccess: Get a snapshot of the current contacts 

function onSuccess(contacts) { 
for (var i = 0; i < contacts.length; i++) { 
    console.log("Display Name = " + contacts[i].displayName); 
} 
} 

// onError: Failed to get the contacts 

function onError(contactError) { 
alert('onError!'); 
} 

Это код из документации PhoneGap API: link

Исходный код является найти все контакты с «bob» в каждом поле.
Я изменил его на «*» (просто звезду) для всех моих контактов.

Функция onDeviceReady просто вызывается нажатием кнопки.

Я получаю ошибку в LogCat заключается в следующем:

[INFO:CONSOLE(81)] "Uncaught ReferenceError: ContactFindOptions is not defined" 
81 is the linenumber with: var options = new ContactFindOptions(); 

Кто-нибудь знает, что нужно сделать, чтобы получить функцию ContactFindOptions() работает?

Если вам нужна дополнительная информация, просто дайте мне знать.

+0

change cordova libaray – prakash

+0

Что вы имеете в виду? библиотека кордоны, которую я использую, является самой новой версией – Wargamer88

ответ

0

Доступ к контактам на Android с помощью PhoneGap: -

function onDeviceReady() { 
    // specify contact search criteria 
    var options = new ContactFindOptions(); 
    options.filter="";   // empty search string returns all contacts 
    options.multiple=true;  // return multiple results 
    filter = ["displayName"]; // return contact.displayName field 

    // find contacts 
    navigator.contacts.find(filter, onSuccess, onError, options); 
} 

var names = []; 

// onSuccess: Get a snapshot of the current contacts 
// 
function onSuccess(contacts) { 
    for (var i=0; i<contacts.length; i++) { 
     if (contacts[i].displayName) { // many contacts don't have displayName 
      names.push(contacts[i].displayName); 
     } 
    } 
    alert('contacts loaded'); 
} 

вы можете попытаться прочитать документацию и реализацию того, как использовать я обеспечиваю некоторые ссылки, которые помогут вам Saving Contacts with PhoneGap Android и Example of Creating a full contact with PhoneGap

+0

. Проблема в том, что я не хочу сохранять контакты или создавать их, просто получаю все контакты с телефона пользователя. И в конечном итоге перечислите их, но сначала получите функцию для работы и верните их в консоль. – Wargamer88

+0

Все еще не работает и получает ту же ошибку. Должен быть файл, который содержит ContactFindOptions(), но я не могу найти его. – Wargamer88

+0

Вы связались с контактной библиотекой правильно? .... –

1

Это может произойти потому, что ваша кордова не понимает эту функцию. Вам нужно добавить плагин, вам нужно добавить плагин для контактов. В пробежки Cordova проекта это с помощью командной строки:

cordova plugin add org.apache.cordova.contacts 

Это добавит следующее AndroidManifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 

и добавить следующее Рез \ XML \ config.xml

<feature name="Contacts"> 
    <param name="android-package" value="org.apache.cordova.contacts.ContactManager" /> 
</feature> 
0

У меня возникла такая же проблема, потому что deviceready событий в Кордове еще не было. Addresss это, обернув вызовов API Cordova в качестве слушателя deviceready события:

document.addEventListener("deviceready", function(){ 
    console.log("deviceready fired!"); //do your stuff 
}); 
0

Если бы тот же вопрос, добавили эту строку кода и она работала. он связывается с библиотекой кордовы.

<script type="text/javascript" src="cordova.js"></script> 
<script type="text/javascript"> 
    app.initialize(); 
</script> 
Смежные вопросы