gpt4 book ai didi

ios - CNContactPickerViewController 在 iOS Swift 中验证手机号码

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:19:57 24 4
gpt4 key购买 nike

我使用 CNContactPickerViewController 使用户能够从手机上存储的联系人列表中选择一个联系人。我通过 CNContactPicker 委托(delegate)方法使用联系人姓名和号码。代码如下

    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
}

我想在验证之后对其应用验证 -

  1. 选no是手机或座机号码。

  2. 检查号码是否有国家代码。

有人可以帮我进行上述验证吗。

最佳答案

这是一个棘手的问题,我认为没有正确 && 有效的单一答案 :) 我会解释原因。

让我们来进行您的第一次验证,其中您要识别用户选择的联系人的电话号码是手机还是固定电话。目前,iOS 不提供调用固定电话的选项。现有选项如下。

enter image description here

如您在上图中所见,您可以获得添加到上述任何类别的电话号码。如何通过代码实现这一点如下所示。

let phoneNumberType = userPhoneNumbers[0].label

通过 switch 或 if-else 语句,您可以过滤类别。举个例子

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

您要求的第二个验证是检查号码是否有国家代码。查看以下调试输出。

enter image description here

如您所见,即使真实电话号码的国家代码是新西兰,countryCode 键却给出了不同的代码,我不确定这是为什么。您可以提取电话号码并创建自己的验证(例如 +、00 ...),但您需要考虑多种组合。

在所有这些努力之后,如果您要将您的构建上传到应用商店,则有可能会被拒绝(除非您有有效的参数),因为您正试图提取用户的个人信息。这就是为什么我的第一句话是有效的;)

关于ios - CNContactPickerViewController 在 iOS Swift 中验证手机号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57798532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com