O'tgan oy men Hindistonning Bengaluru shahridagi "Apple App Accelerator" da iOS ishlab chiqaruvchilari bilan uchrashuvga bordim. U erda ular iOS 11 ning ko'plab xususiyatlari va ilovalarimizga tatbiq etishimiz kerak bo'lgan eng yaxshi amaliyotlar haqida muhokama qilishdi. Parolni avtomatik toʻldirish ham ana shunday xususiyatlardan biri edi. Bu erda men nima ekanligini va buni qanday qilishni tushuntiraman.

Chrome va Safari kabi kompyuter brauzerlari parol takliflarini va parollarni avtomatik toʻldirishni koʻrgan boʻlishingiz mumkin. Bu men uchun haqiqiy hayotni saqlab qoldi. Internetdagi har bir veb-sayt uchun parollarni eslab qolishimiz shart emas. iOS 11 dan avtomatik toʻldirish joriy etildi (“WWDC videosini tomosha qiling”). UITextField, UITextView kabi UITextInput protokolni tasdiqlovchi har qanday boshqaruv bu funksiyadan foydalanishi mumkin.

WWDC Video iOS 11: “Ilovalar uchun parolni avtomatik toʻldirish”

WWDC Video iOS 12: Avtomatik kuchli parollar va Xavfsizlik kodini avtomatik to‘ldirish.

Foydalanuvchi ma'lumotlari foydalanuvchi qurilmasida saqlanadi va iCloud kalit zanjiriga sinxronlashtiriladi va bir xil iCloud-dan foydalanadigan barcha qurilmalar uchun mavjud bo'ladi. ya'ni; foydalanuvchining boshqa qurilmalari.

Apple Keychain-da saqlangan hisob ma'lumotlariga kira olmaydi, shuning uchun foydalanuvchilarning maxfiyligi ham saqlanib qoladi.

Avtomatik to'ldirishni qanday yoqish mumkin?

UITextFiled yoki UITextView yuqorida aytib o'tilganidek, UITextInput protokolini tasdiqlaydi. UITextInput UIKeyInput ni tasdiqlaydi va UIKeyInput UITextInputTraits protokolini tasdiqlaydi. UITextInputTraits textContentType deb nomlangan ixtiyoriy variantga ega bo'lib, u klaviaturani matn hujjatining semantik maqsadi haqida qo'shimcha ma'lumot bilan ta'minlaydi.

Hozirda iOS 11 ga qadar bizda quyidagi textContentTypes mavjud:

Oxirgi ikkita textContentTypes iOS 11.ie da qo'shilgan; foydalanuvchi nomi va parol.

Har bir textField uchun textContentType ni o'rnating.

usernameTF.textContentType = .username
passwordTF.textContentType = .password

Buni xcode hikoyalar taxtasidan ham o'rnatishingiz mumkin. Atributlar inspektori, UITextInputTraits bo'limi ostida:

Ilovani kompilyatsiya qiling va ishga tushiring. Matn maydonini bosing va siz yon tomonda kalit belgisi bo'lgan klaviaturani ko'rasiz. Bu asboblar paneli tez yozish paneli deb ataladi.

Kalit belgisiga teging va u autentifikatsiyani so'raydi. Agar qurilmada TouchID bo'lsa, u touchID autentifikatsiyasini so'raydi.

Muhim: autentifikatsiya ekrani so'ralganda, ilova nofaol holatga o'tadi. Ilova nofaol bo'lganda login yoki ekranni matn maydonlari bilan yopmasligingiz kerak. Odatda u shunday ishlaydi.

Autentifikatsiyadan so'ng, OT saqlangan parollar ro'yxatini ko'rsatadi, ulardan siz ilova uchun to'g'ri deb hisoblagan parolni tanlashingiz mumkin. Bu berilgan textContentType bandiga muvofiq barcha matn maydonlarini avtomatik ravishda to'ldiradi.

Bo'ldi shu !

Ilova foydalanuvchi parolni ro'yxatdan tanlash o'rniga parolni aniq bashorat qila oladimi?

HA!. Agar siz iOS foydalanuvchisi bo'lsangiz, buni ko'rgan bo'lishingiz mumkin:

Shunday qilib, avval OS kalit zanjirida saqlangan barcha parollarni sanab o'tdi, chunki u ushbu ilovaning domen bilan bog'langanligini bilmagan. Buni tuzatish uchun biz xcode loyihasi sozlamalarida bog'langan domenlarni yoqishimiz kerak.

Xcode loyiha sozlamalari → Imkoniyatlar → Bog'langan domenlar bo'limida veb-saytingiz domenini qo'shing. Domen nomiga webcredentials: kalit so'zi qo'shilishi kerak, chunki biz webcredentials xizmatidan foydalanmoqdamiz va bu muhim. Misol: webcredentials:facebook.com

Bu shunday ko'rinadi:

Ilova veb-sayt bilan bog'langanligini iOS-ga aytish uchun biz qilishimiz kerak bo'lgan hamma narsa shu. Endi iOS ikki tomonlama ulanishni o'rnatishi uchun bizga veb-sayt rozi bo'lishi va ilovaga qaytishi kerak.

AASA faylini qanday sozlashni tushuntirib beradigan iOS-dagi universal havolalar haqidagi boshqa maqolamga qarang. Men buni bu erda tushuntirmayman. Shuni yodda tutingki, universal havolalar umumiy veb hisob ma'lumotlaridan foydalanish uchun webcredentials: prefiksi o'rniga applinks: prefiksidan foydalanadi.

AASA fayl tarkibi quyidagicha ko'rinadi:

Ko'rib turganingizdek, bu "ilovalar" kalitlari uchun ilova identifikatorlari qatoriga ega json fayli.

Ilova identifikatori asosan jamoa identifikatori, undan keyin nuqta belgisi (.) va ilovalar to‘plami identifikatori.

Ushbu json fayli veb-saytingizning .well-known jildiga yoki root jildiga joylashtirilishi kerak. .well-known jildiga afzallik beriladi.

Eslatma:buni sinab ko'rayotganingizda haqiqiy qurilmadan foydalanganingizga ishonch hosil qiling. Bog'langan domenlar faqat qurilma xususiyatidir.

Ilovani kompilyatsiya qiling va ishga tushiring. Agar hamma narsa to'g'ri bo'lsa va umumiy veb hisob ma'lumotlarida domeningizga xos ma'lumotlar mavjud bo'lsa, u yuqorida ko'rsatilganidek, tezkor yozish panelida klaviatura ustida ko'rsatiladi.

Agar u ko'rinmasa, bu sizning AASA faylingiz iOS uchun mavjud emasligi sababli bo'lishi kerak. Qo'shimcha ma'lumot olish uchun "WWDC video" ni tomosha qiling.

Parollarni qanday qo'shish/o'chirish/o'zgartirish mumkin?

Xo'sh, iOS 11 da bu xususiyat qurilma sozlamalariga qo'shilgan.

Bir martalik xavfsizlik kodini yoki OTP (iOS 12+) ni qanday avtomatik to'ldirish kerak?

Bu foydalanuvchi nomi va parol bilan bir xil ishlaydi. OTP matn maydonining textContentType ni .oneTimeCode ga o'zgartirishingiz kerak.

myOTPTextField.textContentType = .oneTimeCode

iOS UITextField, UITextView va UITextInput protokolini qabul qiluvchi har qanday maxsus ko'rinishda Parolni avtomatik to'ldirishni qo'llab-quvvatlaydi.

Eslatma: Agar siz xavfsizlik kodini kiritish matn maydoni uchun maxsus kiritish koʻrinishidan foydalansangiz, iOS kerakli Avtomatik toʻldirish interfeysini koʻrsata olmaydi.

Bo'ldi shu. !

Rohatlaning!!

Agar sizga ushbu postni o'qish yoqqan bo'lsa, boshqalarga topishi uchun baham ko'ring va bir oz qarsak chaling 👏👏👏👏👏 !!!!

Yangi maqolalar uchun meniO'rtada kuzatib borishingiz mumkin. Shuningdek, LinkedIn orqali men bilan bog‘laning.

Agar sizda biron bir sharh, savol yoki tavsiyalaringiz bo'lsa, ularni quyidagi izoh bo'limiga qo'ying!