Mam problem z Cordova / PhoneGap Kontakt.
To jest kod, który próbuję wykonać, umieściłem zewnętrzny plik JavaScript:

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!');
}

Jest to kod z dokumentacji API telefonicznej: link

Oryginalny kod jest znalezienie wszystkich kontaktów z "Bob" w każdym polu.
Zmieniłem go na "*" (tylko gwiazdę) dla wszystkich moich kontaktów.

Funkcja onDeviceready jest właśnie wywoływana przez kliknięcie przycisku.

Błąd, który dostam w LogCat to:

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

Czy ktoś wie, co robić, aby uzyskać funkcję Skonfindoptions () Pracuj?

Jeśli potrzebujesz więcej informacji, daj mi znać.

0
Wargamer88 28 listopad 2013, 13:22

4 odpowiedzi

Najlepsza odpowiedź

Uzyskaj dostęp do kontaktów na Androida za pomocą 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');
}

Możesz spróbować przeczytać dokumentację i wdrożenie tego, jak korzystać, Dostarczając trochę linku, który pomoże Ci Zapisywanie kontaktów z PhoneGap Android i Przykład tworzenia pełnego kontaktu z PhoneGap

0
Raju Sidda 28 listopad 2013, 09:41

Może się tak się dzieje, ponieważ twój Cordova nie zrozumiem tej funkcji. Musisz dodać wtyczkę, musisz dodać wtyczkę kontaktów. W projekcie Cordova uruchom to za pomocą wiersza poleceń:

cordova plugin add org.apache.cordova.contacts

Spowoduje to dodanie do 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" />

I dodaj zgodnie z res \ Xml config.xml

<feature name="Contacts">
   <param name="android-package" value="org.apache.cordova.contacts.ContactManager" />
</feature>
1
Jyoti Prakash 8 luty 2015, 20:25

Doświadczyłem tego samego problemu, ponieważ impreza deviceready w Cordova nie mogła strzelać. Adresy to przez owijanie dowolnych połączeń Cordova API w słuchaczu zdarzeń {X1}}:

document.addEventListener("deviceready", function(){
    console.log("deviceready fired!"); //do your stuff
});
0
Huey 17 lipiec 2015, 07:17

Miał ten sam problem, dodał tę linię kodu i działało. Linki do biblioteki Cordova.

<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">
    app.initialize();
</script>
0
James Cluade 30 wrzesień 2016, 03:39