标签: contactpicker

iOS Swift CNContactPickerViewController搜索联系人并添加到选择中

我使用的是iOS 9和Swift 2.2

我已经CNContactPickerViewController使用内置iOS CNContactPickerDelegate来获取联系号码,

CNContactPickerViewController屏幕中,当我点击顶部的搜索字段并搜索名称时,我需要将该名称添加到我的选择中,但在点击联系人后没有任何反应.

我到处搜索,并找到任何解决方案

我是否需要在代码中添加任何内容,或者是iOS 9错误

@IBAction func AddBtnKlkFnc(sender: AnyObject)
{
    let contactPicker = CNContactPickerViewController()
    contactPicker.delegate = self
    contactPicker.displayedPropertyKeys =
        [CNContactPhoneNumbersKey]
    self.presentViewController(contactPicker, animated: true, completion: nil)
}

func contactPicker(picker: CNContactPickerViewController, didSelectContacts ContctAryVar: [CNContact])
{
    for ContctVar in ContctAryVar
    {
        let ContctDtlVar = ContctDtlCls()
        ContctDtlVar.ManNamVar = CNContactFormatter.stringFromContact(ContctVar, style: .FullName)!

        for ContctNumVar: CNLabeledValue in ContctVar.phoneNumbers
        {
            var MobNumVar  = ((ContctNumVar.value as! CNPhoneNumber).valueForKey("digits") as? String)!
            if(MobNumVar.Len() > 10)
            {
                MobNumVar = MobNumVar.GetLstSubSrgFnc(10)
            }
            ContctDtlVar.MobNumVar = …
Run Code Online (Sandbox Code Playgroud)

search ios contactpicker swift2 cncontact

16
推荐指数
2
解决办法
4176
查看次数

直接从联系人选择器意图中选择联系人

您好我想从我们的默认联系簿意图中选择一个联系人.我尝试了几种方法来做到这一点.请在下面找到代码.所有这些代码的问题在于,他们打开一个中间文档屏幕,用户必须选择联系人,而不是打开联系簿.

private void openContactIntent() {
     Intent intent = new Intent(Intent.ACTION_GET_CONTENT, ContactsContract.Contacts.CONTENT_URI);
     intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
     startActivityForResult(intent, REQ_CONTACT_DIRECTORY);
}
Run Code Online (Sandbox Code Playgroud)

我也试过了

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
Run Code Online (Sandbox Code Playgroud)

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT); 
Run Code Online (Sandbox Code Playgroud)

我所看到的中间屏幕是 在此输入图像描述

android android-intent android-contacts android-implicit-intent contactpicker

11
推荐指数
4
解决办法
1万
查看次数

从CNContactProperty - iOS 9中提取电子邮件

我有一个iOS应用程序,需要访问联系人选择器视图控制器,以允许用户选择联系人属性,如电子邮件地址/ imessage电子邮件地址的电话号码.

我现在遇到的问题是,我无法弄清楚如何解析返回的数据.我已经使用了该contactPicker didSelectContactProperty方法,但我无法解析我需要的数据.

-(void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty {

   CNLabeledValue *test = contactProperty.contact.emailAddresses.firstObject;
   NSLog(@"%@", test);

   NSLog(@"%@", contactProperty.contact.phoneNumbers);
}
Run Code Online (Sandbox Code Playgroud)

如果您运行上面的代码,您会得到以下响应:

2015-10-11 13:30:07.059 Actions[516:212765] <CNLabeledValue: 0x13656d090: identifier=21F2B1B2-8158-466B-9224-E2036CA07D28, label=_$!<Other>!$_, value=News_Europe@iEUNS.com> 2015-10-11 13:30:07.061 App_Name[516:212765] (
    "<CNLabeledValue: 0x13672a500: identifier=6697A0E9-3B91-4566-B26E-83B87979F816, label=_$!<Main>!$_, value=<CNPhoneNumber: 0x13672a660: countryCode=gb, digits=08000391010>>" )
Run Code Online (Sandbox Code Playgroud)

多数民众赞成,但如何从中提取我需要的数据呢?为什么NSLog语句以奇怪的格式返回数据?

谢谢你的时间,丹.

cocoa-touch objective-c ios contactpicker cncontact

7
推荐指数
1
解决办法
5380
查看次数

ContactPicker无法在Windows Phone 8.1 Silverlight中运行

我试图通过以下快速入门获取Windows Phone 8.1 SL应用程序中的联系信息:选择用户联系人

在我的功能中,

    private async void PickAContactButton_Click(object sender, RoutedEventArgs e)
    {
        var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
        contactPicker.desiredFieldsWithContactFieldType.add(Windows.ApplicationModel.Contacts.ContactFieldType.email);
        Contact contact = await contactPicker.PickContactAsync(); // this throws System.NotImplementedException
        // Additional information: The method or operation is not implemented.

        if (contact != null)
        { ... }
     }
Run Code Online (Sandbox Code Playgroud)

完全相同的功能适用于Windows Phone 8.1 RT.ContactPicker根据此参考, WP 8.1 RT和WP 8.1 SL均支持class .

知道发生了什么事吗?

c# silverlight contactpicker windows-phone-8.1

5
推荐指数
1
解决办法
663
查看次数

iOS9 - CNContactPickerViewController :预选联系人

我使用新的 CNContactPickerViewController 从地址簿中选择联系人并在我的应用程序中使用它们。

当我按下按钮时,我调用此代码:

let contactPicker = CNContactPickerViewController()
        contactPicker.delegate = self
        contactPicker.predicateForEnablingContact = NSPredicate(format: "emailAddresses.@count > 0")
        presentViewController(contactPicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我使用以下 CNContactPickerDelegate 方法来选择多个联系人:

func contactPicker(picker: CNContactPickerViewController, didSelectContacts contacts: [CNContact]) {

    selectedRecipients = contacts.map { $0.emailAddresses.first!.value as! String }
    tableView.reloadData()

}
Run Code Online (Sandbox Code Playgroud)

这有助于我填充一个名为“selectedRecipients”的数组(基本上是一组 emailAddresses 字符串)

结果如下: 在此处输入图片说明

这工作正常。但是,如果我之前选择了联系人,我希望contactPicker在初始化时预先选择联系人,即在出现时将联系人显示为已选择。有没有办法做到这一点?

谢谢

contactpicker ios9 cncontact

5
推荐指数
1
解决办法
2782
查看次数

如何在CNContactPickerViewController中隐藏组和取消按钮?

我正在使用CNContactPickerViewController,我想隐藏我尝试的取消和组按钮 contactPickerViewController.navigationItem.leftBarButtonItem = nil

contactPickerViewController.navigationItem.hidesBackButton = true
Run Code Online (Sandbox Code Playgroud)

但这不起作用..在这里,我的代码来创建控制器

let contactPickerViewController = CNContactPickerViewController()

    contactPickerViewController.predicateForEnablingContact = NSPredicate(format: "phoneNumbers.@count > 0",
        argumentArray: nil)

    contactPickerViewController.delegate = self
    contactPickerViewController.navigationItem.leftBarButtonItem = nil
    contactPickerViewController.navigationItem.hidesBackButton = true

    presentViewController(contactPickerViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

帮助任何人?谢谢

cancel-button ios contactpicker swift

5
推荐指数
0
解决办法
672
查看次数

出列的可重复使用的单元格总是崩溃

在这段代码中我添加了编程VC:

@IBAction func addPerson(_ sender: UIBarButtonItem) {
        let controller = CNContactPickerViewController()
        controller.delegate = self
        navigationController?.present(controller, animated: true, completion: nil)
    }
Run Code Online (Sandbox Code Playgroud)

我点击联系人时使用另一个VC(将信息显示在单元格中,然后我想在我的第一个VC中显示电话/电子邮件的复选框)

func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
        let vc = EditContactViewController()
        self.navigationController?.pushViewController(vc, animated: true)
Run Code Online (Sandbox Code Playgroud)

我为下一个单元格创建了一个类,当我在tableView cellForRowAtIndexPath中执行此操作时,我在storyboard中将标识符设置为单元格

let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as? ConfigCell

return cell!
Run Code Online (Sandbox Code Playgroud)

这给了我:

fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)

我也试过withIdentifier,forIndexPath,它说:

2016-11-12 01:35:28.626 iEvents3 [2637:47714]***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法使用标识符单元格对单元格出列 - 必须为该单元格注册一个nib或类标识符或连接故事板中的原型单元格'

我删除了重用标识符并将其重新放回,清理了应用程序,重启,一切.

感谢您的时间!

model-view-controller contactpicker swift

5
推荐指数
2
解决办法
4626
查看次数

Android联系人选择器获取姓名+号码+电子邮件

我在使用“联系人选择器”时遇到麻烦,它可以与Phone.DISPLAY_NAME和Phone.NUMBER一起使用,但不能与Email.ADDRESS一起使用

public class CustomerForm extends Activity {
private final static int CONTACT_PICKER = 1;
private EditText txtMailContacto;
private EditText txtNombreContacto;
private EditText txtTelefono;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_customer_form);
    txtMailContacto = (EditText) findViewById(R.id.txtMailContacto);
    txtTelefono = (EditText) findViewById(R.id.txtTelefono);
    txtNombreContacto = (EditText) findViewById(R.id.txtNombreContacto);
}
public void pickContact(View v)
{
    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
    startActivityForResult(contactPickerIntent, CONTACT_PICKER);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // check whether the result is ok
    if (resultCode == RESULT_OK) { …
Run Code Online (Sandbox Code Playgroud)

email android picker contact contactpicker

2
推荐指数
1
解决办法
3055
查看次数