validace CNContactPickerViewController pro mobilní čísla v iOS Swift

hlasů
20

Použil jsem CNContactPickerViewController umožnit uživateli vybrat kontakt ze seznamu kontaktů uložených v telefonu. Já používám jméno kontaktu a číslo pomocí CNContactPicker metody delegáta. Kód níže

    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
}

Chtěl bych požádat validace po validací na něm -

  1. Vybrán žádný je mobilní telefon nebo pevnou linku číslo.

  2. Zkontrolujte, zda je číslo má kód země.

Může mi někdo prosím, pomozte mi s výše uvedenými validací.

Položena 05/09/2019 v 06:40
uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

To je záludná otázka, že jsem přesvědčen, že není správné && platí jediná odpověď :) Budu vysvětlit proč.

Vezměme si svůj první ověření, které chcete určit telefonní číslo, zvolenou uživatelem kontaktu je mobilní telefon nebo pevnou linku. V současné době iOS není poskytuje možnost volání pevnou linku . Stávající možnosti jsou jako níže.

zadejte popis obrázku zde

Jak můžete vidět na obrázku výše, můžete získat telefonní číslo, které zní na některou z výše uvedených kategorií. Jak lze dosáhnout toho, aby z kód je jak je uvedeno níže.

let phoneNumberType = userPhoneNumbers[0].label

S přepínačem nebo if-else, můžete filtrovat kategorii. Jako příklad

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

Druhé potvrzení, že se ptáte, je zkontrolovat, zda počet má kód země. Podívejte se na následující ladění výkonu.

zadejte popis obrázku zde

Jak můžete vidět, i když skutečný telefonní číslo má kód země Nového Zélandu se countryCode klíč dává jiný, což jsem si jistý, proč. Můžete extrahovat telefonní číslo a vytvořit si vlastní validace (např. +, 00 ...), ale existuje několik kombinací, které byste měli vzít v úvahu.

Po všech těch úsilí, pokud nahrajete stavět na App Store, je zde možnost, jak se dostat zamítnuty (pokud máte platné argumenty), protože se snažíte získat informace o uživatelích. To je důvod, proč můj úplně první věta je platný)

Odpovězeno 05/09/2019 v 08:54
zdroj uživatelem

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