Flutter Tətbiqinizdəki Kontaktları necə əldə etmək olar

Flutter layihənizi qurmusunuzsa, ətraflı məlumat üçün giriş Flutter dərsliyimizə müraciət edin.

Başlamaq

Bu dərs üçün kontaktlarımıza idxal etmək üçün əlaqə_service (0.3.10) paketindən və kontaktlarınıza daxil olmaq üçün tələb olunan icazələri əldə etmək üçün icazə_handler (4.0.0) istifadə edəcəyik. Bu asılılıqları pubspec.yaml faylınıza əlavə edin.

asılılıqlar: icazə_handler: ^ 4.0.0 əlaqə_service: ^ 0.3.10

Bunun üçün edilməsi lazım olan xüsusi bir platforma da var.

Android Quraşdırma

Zəhmət olmasa, Android layihənizin AndroidX dəstəklənməsi üçün təkmilləşdirilmiş olduğundan əmin olun. İcazə verici 3.1.0 və daha yuxarı versiyalarında Android layihənizin təkmilləşdirilməsini təmin etməlisiniz. Bunu etmək üçün aşağıdakıları android / gradle.properties faylınıza əlavə edin:

android.useAndroidX = əsl android.enableJetifier = doğrudur

Həmçinin compileSdkVersion-u android / app / build.gradle faylınızda 28-ə təyin etdiyinizə əmin olun:

android {tərtibSdkVersion 28}

Cihazınızın kontaktlarına daxil olmaq üçün icazələrin AndroidManifest.xml faylına əlavə edilməsi lazımdır.



iOS Quraşdırma

İnfo.plist faylına iOS üçün icazələr əlavə edin. Yalnız bu dərslikdəki kontaktlara giriş üçün icazə istəməyimizə baxmayaraq, bu tətbiq App Store-a təqdim olunarsa, bütün icazələr olmadan qəbul edilə bilməz. Bu, paketdəki bu məsələ ilə əlaqədardır. Beləliklə, biz irəliləyəcəyik və aşağıdakı düymələri info.plist faylımıza əlavə edəcəyik.

NSAppleMusicUsageDescription Musiqi! kTCCServiceMediaLibrary media NSCalendarsUsageDeccription Təqvimlər NSCameraUsageDescription kamera NSContactsUsageDescription əlaqə NSMicrophoneUsageDizayn mikrofon NSSpeechRecognitionUsageDescription nitq NSMotionUsageDizayn hərəkət NSP Foto KitabxanaUsageDizayn fotolar NSRemindersUsageDescription xatırlatmalar

Əlaqə icazəsi tələb olunur

Əvvəlcə istifadəçidən kontaktlarına daxil olmaq üçün icazə istəməliyik. Bu icazə_handler paketi vasitəsilə edilə bilər. Kontaktları göstərməyə cəhd etmədən əvvəl əlaqə əldə etmə icazələrini yoxlayan və əldə edən xüsusi bir düymə yarada bilərik.

Yuxarıdakı kodumuzda əvvəlcədən 37 nömrəli kontaktlara daxil olmaq üçün mövcud icazə statusunun nə olduğunu yoxlayırıq. Bu zəngdən geri qaytarıla bilən beş fərqli icazə statusu var:

  • rədd edildi - istifadəçi tərəfindən rədd edilmiş icazə
  • əlil - xüsusiyyət ya əlil və ya cihazda mövcud deyil
  • verilmiş - icazə verilir
  • məhdudlaşdırılıb - əməliyyat sistemi tərəfindən rədd edilmiş icazə, valideyn nəzarəti kimi məhdudiyyətlərə görə ola bilər (yalnız iOS)
  • naməlum - naməlum icazə statusu

Kodumuzda istifadəçi tərəfindən icazə verilməmiş və ya əlil olsaydı icazə tələb olunur.

İstifadəçi icazə istəməsini qəbul etmirsə, istifadəçiyə bir növ rəy göstərməliyik. IOS-da, istifadəçi əvvəlcə istədikdə icazə sorğusunu qəbul etmirsə, sonra cihazların parametrləri vasitəsilə icazələri dəyişdirməlidirlər.

Android-də tətbiq, tətbiqin özü vasitəsilə icazələrin alınmasını tələb edə bilər. Bununla birlikdə, istifadəçi "Yenə soruşma" qutusunu işarələyirsə, kontaktlarına daxil olmaq üçün cihazların sistem parametrlərindən icazəni dəyişdirməlidirlər. Bu ssenariləri əhatə etmək üçün icazə verilən status ala bilməyəndə bir xəbərdarlıq dialoqu göstərə bilərik. Bu 11-ci sətirdə aşağıda əlavə olunur.

Əlaqə göstərilir

İndi bütün icazələrimiz başa düşüldükdən sonra, təmasımıza asanlıqla daxil ola və onlardan bir siyahısını görüntüləyə bilərik. Bu siyahını göstərmək üçün yeni bir səhifə yaradaq. Aşağıdakı ListView Builder, kontaktlarımızın hamısından keçər və kontaktların avatarı və ekran adı ilə ListTile göstərilir.

Yuxarıdakı şifrəli vidjeti işə saldıqda, 21-də görünə bilən əlaqələrimizi əldə etmək üçün bir zəng də edirik. ListView qurmaq üçün lazım olan bütün məlumatlarla. Bu dərslikdə biz yalnız kontaktların avatarından və adın adından məlumatları istifadə edirik, lakin bütün bu məlumatları Kontaktlar obyekti var:

// Adı String displayName, verilmişName, orta ad, prefiks, şəkilçi, familyName; // Şirkət String şirkəti, jobTitle; // E-poçt ünvanları dəyişdirilə bilər e-poçtlar = []; // Telefon nömrələri dəyişdirilə bilər telefonlar = []; // Poçt ünvanları dəyişdirilə bilər PoçtAddresses = []; // Avatarla əlaqə / thumbnail Uint8List avatar;

Son Nəticə

İndi SeeContactsButton-u icazələr təsdiqləndikdən sonra Kontaktlar Səhifəsini yuxarıdan itələməli olduğumuz bütün əlaqələrimizlə yeni səhifəmizə yönləndirmək üçün əldə edin. Bunu aşağıda 8-ci sətirdə edirik.

Kontaktlar Android-də yüklənir

Xülasə

Bu dərs vəsaiti, flutter tətbiqində kontaktları göstərmək üçün icazə_handler və contact_service paketlərindən necə istifadə etdiyimizi göstərdi. Kontaktlar haqqında daha çox məlumat göstərməklə bu tətbiqatı daha da genişləndirə bilərik. Flutter_sms paketinin köməyi ilə kontaktlarınıza SMS mesajları göndərməyi də həyata keçirə bilərik. Və ya hətta url_launcher paketindən istifadə edərək kontaktlarınıza çırpma tətbiqindən zəng etmək imkanı var. Seçimlər həqiqətən sonsuzdur.

Bu məqalədəki bütün kodlara bu Github linkində baxa bilərsiniz.