Validarea CNContactPickerViewController pentru numărul de telefon mobil în iOS Swift

voturi
20

Am folosit CNContactPickerViewController pentru a permite utilizatorului pentru a alege un contact din lista lor de contacte stocate pe telefon. Eu folosesc numele de contact și numărul utilizând metode delegatului CNContactPicker. Codul de mai jos

    func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
    // You can fetch selected name and number in the following way

    // user name
    let userName: String = \(contact.givenName) \(contact.familyName)

    // user phone number
    let userPhoneNumbers:[CNLabeledValue<CNPhoneNumber>] = contact.phoneNumbers
    let firstPhoneNumber:CNPhoneNumber = userPhoneNumbers[0].value

    // user phone number string
    let primaryPhoneNumberStr:String = firstPhoneNumber.stringValue

   // print(primaryPhoneNumberStr)

    textfieldName.text = userName
    textfieldContactNo.text = primaryPhoneNumberStr
}

Aș dori să aplice validări în urma validări la ea -

  1. nu este selectat un telefon fix sau număr de telefon mobil.

  2. Verificați dacă numărul are un cod de țară.

Poate cineva să mă ajute cu validările de mai sus.

Întrebat 05/09/2019 la 06:40
de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Aceasta este o întrebare dificilă, care cred că nu există nici un singur răspuns corect && valid :) voi explica de ce.

Să luăm prima validare, pe care doriți să identificați numărul de telefon al utilizatorului de contact selectat este un telefon mobil sau fix. În prezent, iOS nu oferă o opțiune de apel fix . Opțiunile existente sunt ca mai jos.

introduceți descrierea imaginii aici

După cum puteți vedea în imaginea de mai sus, puteți obține numărul de telefon este adăugat la oricare din categoria de mai sus. Cum puteți realiza acest lucru de la codul este la fel de mai jos.

let phoneNumberType = userPhoneNumbers[0].label

Cu un comutator sau dacă-else, puteți filtra categoria. Ca exemplu

    if (phoneNumberType?.contains("Mobile"))! {
        print("This is a mobile number")
    }

A doua validare pe care vi se cere este de a verifica dacă numărul are un cod de țară. Uită-te la următoarea ieșire de depanare.

introduceți descrierea imaginii aici

Dupa cum se poate vedea, chiar dacă numărul de telefon real , are un cod de țară din Noua Zeelandă, codȚară cheie oferă una diferită, pe care nu sunt sigur de ce. Puteți extrage numărul de telefon și de a crea propriile validări (Ex. +, 00 ...) , dar există mai multe combinații pe care trebuie să ia în considerare.

După toate acestea efort, dacă încărcați construi dvs. pentru a App Store, există posibilitatea de a fi respins (dacă nu aveți un argumente valide) din moment ce încearcă să extragă informațiile personale ale utilizatorului. De aceea, prima mea teză este valabilă;)

Publicat 05/09/2019 la 08:54
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more