آموزش Cordova، بخش 9: مخاطبین

آموزش Cordova، بخش 9: مخاطبین

پلاگین cordova-plugin-contacts برای دسترسی به مخاطبین موجود در دستگاه استفاده می شود، در این بخش از آموزش نحوه ایجاد، جستجو و حذف مخاطبین را آموزش می دهیم.

قدم 1: نصب پلاگین Contacts

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

قدم 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>

قدم 3 : افزودن Event Listeners

فایل index.js را باز کرده و کدهای زیر را درون آن قرار دهید.

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

قدم 4: تابع Callback متد  (navigator.contacts.create)

در حال حاضر هیچ گونه مخاطبی در دستگاه ذخیره نشده است.

آموزش Cordova، بخش 9: مخاطبین

اولین تابع callback ما برای فراخوانی متد 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);
   }
	
}

حال زمانی که دکمه ADD CONTACT  را کلیک می کنیم یک مخاطب جدید به لیست مخاطبین دستگاه اضافه می شود.

آموزش Cordova، بخش 9: مخاطبین

قدم 5 : تابع Callback متد  (navigator.contacts.find)

دومین تابع callback را برای جستجوی تمام مخاطبین به وسیله فراخوانی متد navigator.contacts.find ایجاد می کنیم.

شی option دارای پارامتر filter است که بوسیله آن می توان نوع فیلتر جستجو را مشخص کرد.

دراینجا ما از multiple = True برای برگرداندن تمامی مخاطبین دستگاه استفاده می کنیم. همچنین از کلید field برای جستجوی مخاطبین بوسیله 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);
   }
	
}

حال زمانی که دکمه FIND CONTACT  را فشار می دهیم یک پیغام حاوی مشخصات نمایش داده می شود.

آموزش Cordova، بخش 9: مخاطبین

قدم 6 : تابع Callback حذف

در این مرحله ما مجددا از متد find استفاده خواهیم کرد، با این تفاوت که پس از پیدا شدن مخاطب آن را حذف می کنیم.

برای حذف از متد remove استفاده می کنیم.

از آنجایی که ما یک مخاطب را در دستگاه ذخیره سازی کردیم، به صورت دستی یک مخاطب جدبد اضافه می کنیم.

آموزش Cordova، بخش 9: مخاطبین

حال زمانی که دکمه DELETE CONTACT را کلیک کنیم، مخاطب Test Userحذف می شود.

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


بومیم