Учебники

Кордова — Контакты

Этот плагин используется для доступа к базе данных контактов устройства. В этом уроке мы покажем вам, как создавать, запрашивать и удалять контакты.

Шаг 1 — Установите плагин контактов

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugincontacts

Шаг 2 — Добавление кнопок

Кнопка будет использоваться для вызова функции createContact . Мы поместим его в div class = «app» в файле index.html .

<button id = "createContact">ADD CONTACT</button>
<button id = "findContact">FIND CONTACT</button>
<button id = "deleteContact">DELETE CONTACT</button>

Шаг 2 — Добавление прослушивателей событий

Откройте index.js и скопируйте следующий фрагмент кода в функцию onDeviceReady .

document.getElementById("createContact").addEventListener("click", createContact);
document.getElementById("findContact").addEventListener("click", findContact);
document.getElementById("deleteContact").addEventListener("click", deleteContact);

Шаг 3А — Функция обратного вызова (navigator.contacts.create)

Теперь у нас нет контактов, сохраненных на устройстве.

Кордова Контакт Пусто

Наша первая функция обратного вызова вызовет метод navigator.contacts.create, где мы можем указать новые контактные данные. Это создаст контакт и назначит его переменной myContact, но он не будет сохранен на устройстве. Чтобы сохранить его, нам нужно вызвать метод save и создать функции обратного вызова для функции success и error.

function createContact() {
   var myContact = navigator.contacts.create({"displayName": "Test User"});
   myContact.save(contactSuccess, contactError);
    
   function contactSuccess() {
      alert("Contact is saved!");
   }
	
   function contactError(message) {
      alert('Failed because: ' + message);
   }
	
}

Когда мы нажимаем кнопку ДОБАВИТЬ КОНТАКТ , новый контакт будет сохранен в списке контактов устройства.

Кордова Контакт Создать

Шаг 3B — Функция обратного вызова (navigator.contacts.find)

Наша вторая функция обратного вызова будет запрашивать все контакты. Мы будем использовать метод navigator.contacts.find . У объекта параметров есть параметр фильтра, который используется для указания поискового фильтра. множественный = true используется, так как мы хотим вернуть все контакты с устройства. Ключ поля для поиска контактов по displayName, так как мы использовали его при сохранении контакта.

После установки параметров мы используем метод find для запроса контактов. Предупреждающее сообщение будет активировано для каждого найденного контакта.

function findContacts() {
   var options = new ContactFindOptions();
   options.filter = "";
   options.multiple = true;
   fields = ["displayName"];
   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);
    
   function contactfindSuccess(contacts) {
      for (var i = 0; i < contacts.length; i++) {
         alert("Display Name = " + contacts[i].displayName);
      }
   }
	
   function contactfindError(message) {
      alert('Failed because: ' + message);
   }
	
}

Когда мы нажимаем кнопку НАЙТИ КОНТАКТ, всплывет одно всплывающее окно с предупреждением, поскольку мы сохранили только один контакт.

Кордова Контакты Найти

Шаг 3С — Функция обратного вызова (удаление)

На этом этапе мы снова будем использовать метод find, но на этот раз мы установим другие параметры. Параметр options.filter предназначен для поиска того тестового пользователя, которого необходимо удалить. После того, как функция обратного вызова contactfindSuccess вернула нужный контакт, мы удалим его, используя метод remove , для которого требуется собственный обратный вызов success и error.

function deleteContact() {
   var options = new ContactFindOptions();
   options.filter = "Test User";
   options.multiple = false;
   fields = ["displayName"];
   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);

   function contactfindSuccess(contacts) {
      var contact = contacts[0];
      contact.remove(contactRemoveSuccess, contactRemoveError);

      function contactRemoveSuccess(contact) {
         alert("Contact Deleted");
      }

      function contactRemoveError(message) {
         alert('Failed because: ' + message);
      }
   }

   function contactfindError(message) {
      alert('Failed because: ' + message);
   }
	
}

Теперь у нас есть только один контакт, сохраненный на устройстве. Мы вручную добавим еще один, чтобы показать вам процесс удаления.

Кордова Контакты Несколько

Теперь мы нажмем кнопку УДАЛИТЬ КОНТАКТ , чтобы удалить тестового пользователя . Если мы проверим список контактов еще раз, мы увидим, что Тестовый пользователь больше не существует.