【问题标题】:Is there any possibility to open Contacts App in Xamarin IOS是否有可能在 Xamarin IOS 中打开联系人应用程序
【发布时间】:2021-09-21 18:21:35
【问题描述】:

是否有可能在 Xamarin IOS 中打开联系人应用程序,

对于 android,下面的代码对我有用。

var activity = Forms.Context as Activity;
var intent = new Intent(Intent.ActionInsert);
intent.SetType(ContactsContract.Contacts.ContentType);
activity.StartActivity(intent);

至于IOS,我没有找到任何代码,任何人都可以解决这个问题。

【问题讨论】:

  • 您可以使用addressbook: url scheme打开iOS系统通讯录应用:developer.apple.com/library/archive/documentation/…
  • 或者,根据您的用例,您可以使用 Xamarin Essentials 发送至 pick a contact 并将联系信息返回到您的应用程序。
  • @Andrew 添加新联系人我想打开联系人应用程序,如果有可能打开添加联系人窗口也可以。

标签: c# xamarin xamarin.forms xamarin.android xamarin.ios


【解决方案1】:

Apple 发布了两个新框架,Contacts 和 ContactsUI,它们取代了 iOS 8 和更早版本使用的现有通讯簿和通讯簿 UI 框架。 您可以使用这两个框架来处理所有涉及联系人的情况。

为了清楚起见,我创建了一个简单的应用程序来展示如何在 ios 中显示联系人应用程序。 您可以使用以下代码打开联系人应用程序:

 public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        picker1.TouchDown += Picker1_TouchDown;
    }

    private void Picker1_TouchDown(object sender, EventArgs e)
    {   //create a picker
        var picker = new CNContactPickerViewController();
        //set the delegate
        picker.Delegate = new ContactPickerDelegate();
        //display picker
        PresentViewController(picker, true, null);
    }

ContactPickerDelegate 是您需要创建并用于响应用户与选取器的交互的对象。 代码如下:

 public class ContactPickerDelegate: CNContactPickerDelegate
    {
        #region Constructors
        public ContactPickerDelegate ()
        {
        }

        public ContactPickerDelegate (IntPtr handle) : base (handle)
        {
        }
        #endregion

        #region Override Methods
        public override void ContactPickerDidCancel (CNContactPickerViewController picker)
        {
            Console.WriteLine ("User canceled picker");

        }

        public override void DidSelectContact (CNContactPickerViewController picker, CNContact contact)
        {
            Console.WriteLine ("Selected: {0}", contact);
        }

        public override void DidSelectContactProperty (CNContactPickerViewController picker, CNContactProperty contactProperty)
        {
            Console.WriteLine ("Selected Property: {0}", contactProperty);
        }
        #endregion
    }

截图:

更多信息可以参考https://docs.microsoft.com/en-us/xamarin/ios/platform/contacts

【讨论】:

猜你喜欢
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多