CNContactPickerViewController érvényesítés mobil számát iOS Swift

szavazat
20

Én használtam CNContactPickerViewController lehetővé teszi a felhasználó, hogy válasszon egy névjegyet a kapcsolati lista a telefonon tárolt. Én a kapcsolattartó nevét és telefonszámát CNContactPicker küldött módszerekkel. Kód az alábbiak

    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
}

Szeretném alkalmazni hitelesítések következő hitelesítések rá -

  1. Kiválasztott nem egy mobiltelefon, vagy vezetékes számot.

  2. Ellenőrizze, hogy a szám egy ország kódját.

Tud valaki kérem segítsen nekem a fenti kidolgozása.

A kérdést 05/09/2019 06:40
felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Ez egy trükkös kérdés, hogy azt hiszem, nincs helyes && érvényes egyetlen választ :) leírom, hogy miért.

Nézzük az első érvényesítés, amely szeretné azonosítani a felhasználó kiválasztott telefonszámot, az egy mobiltelefon, vagy vezetékes. Jelenleg iOS nem nyújt lehetőséget hívás vezetékes . A jelenlegi lehetőségek, mint alább.

írja kép leírása itt

Mint látható a fenti képen, akkor kap a telefonszámot adunk a fentiek közül bármelyik kategóriában. Hogyan lehet elérni, hogy honnan kódot az alábbiak szerint.

let phoneNumberType = userPhoneNumbers[0].label

Egy kapcsoló vagy if-else, szűrheti a kategóriában. Mint például

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

A második érvényesítési azt kérik, hogy ellenőrizze, hogy a szám egy ország kódját. Nézd meg az alábbi hibakeresési kimenet.

írja kép leírása itt

Mint látható, bár a valós telefonszámot egy országkód Új-Zéland, a országkód kulcsot ad egy másikat, ami nem vagyok biztos, hogy miért. Tudod kivonat a telefonszámot, és hozd létre a saját kidolgozása (Ex. +, 00 ...), de van több kombináció, hogy meg kell vizsgálni.

Mindezek után erőfeszítés, ha feltölti a build App Store, van szerzés lehetőségét elutasította (kivéve, ha van egy érvényes érvek), mivel próbál kivonat felhasználó személyes adatait. Ezért a legelső mondat érvényes;)

Válaszolt 05/09/2019 08:54
a forrás felhasználó

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