CNContactPickerViewController validatie voor mobiele nummer in iOS Swift

stemmen
20

Ik heb gebruik gemaakt CNContactPickerViewController de gebruiker in staat om een ​​contactpersoon uit hun lijst met contactpersonen die zijn opgeslagen op de telefoon te halen. Ik gebruik de naam van de contactpersoon en het nummer met behulp van CNContactPicker delegeren methoden. Code zoals hieronder

    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
}

Ik wil graag solliciteren validaties volgende validaties om het -

  1. Soms neen is een mobiele telefoon of vaste nummer.

  2. Controleer of het nummer een landcode.

Kan iemand me helpen met de bovenstaande validaties.

De vraag is gesteld op 05/09/2019 om 06:40
user
In andere talen...                            


1 antwoorden

stemmen
1

Dit is een lastige vraag die ik geloven dat er geen juiste && geldig enkel antwoord :) Ik zal uitleggen waarom.

Laten we uw eerste validatie, die u wilt identificeren van de gebruiker geselecteerde contactpersoon telefoonnummer is een mobiele telefoon of vaste lijn. Op dit moment is iOS niet verstrekken van een calloptie vaste lijn . De bestaande mogelijkheden zijn als hieronder.

voer image beschrijving hier

Zoals u kunt zien in de bovenstaande afbeelding, kunt u het telefoonnummer wordt toegevoegd aan een van de bovenstaande categorie. Hoe je kunt bereiken dat vanaf code is als volgt.

let phoneNumberType = userPhoneNumbers[0].label

Met een schakelaar of if-else-statement, kunt u de categorie filteren. Als voorbeeld

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

De tweede validatie die u vraagt ​​is om te controleren of het aantal heeft een landcode. Kijk naar de volgende debug output.

voer image beschrijving hier

Zoals u kunt zien, ook al is het echte telefoon nummer heeft een landcode van Nieuw-Zeeland, de countryCode -toets geeft een andere, waarvan ik weet niet waarom. U kunt het telefoonnummer te halen en maak je eigen validaties (Ex. +, 00 ...) maar er zijn verschillende combinaties die je nodig hebt om te overwegen.

Na al deze moeite, als u het uploaden van uw build naar de App Store, is er de mogelijkheid op het krijgen van afgewezen (tenzij u een geldige argumenten), omdat je probeert om persoonlijke informatie van de gebruiker te halen. Dat is de reden waarom mijn allereerste zin geldig is;)

antwoordde op 05/09/2019 om 08:54
bron van user

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