C# 如何读取Xamarin表单中的联系人
我是Xamarin平台的初学者,试图阅读Xamarin表单中的联系人。甚至尝试使用Xamarin.Mobile,但它会产生很多错误。又找到1个插件,即Xamarin.contacts 但没有给出相关的例子。请为所有3个平台提供使用Xamarin.contacts的相关示例C# 如何读取Xamarin表单中的联系人,c#,android,ios,windows-phone,xamarin.forms,C#,Android,Ios,Windows Phone,Xamarin.forms,我是Xamarin平台的初学者,试图阅读Xamarin表单中的联系人。甚至尝试使用Xamarin.Mobile,但它会产生很多错误。又找到1个插件,即Xamarin.contacts 但没有给出相关的例子。请为所有3个平台提供使用Xamarin.contacts的相关示例 提前感谢:)请记住Xam.Plugin.Contacts目前是alpha版本 这是我的实现。请注意,尽管有类名,但它不是真正的MVVM模式。为了提高可读性,我尽可能地简化了代码 MainPage.xaml <Conten
提前感谢:)请记住Xam.Plugin.Contacts目前是alpha版本 这是我的实现。请注意,尽管有类名,但它不是真正的MVVM模式。为了提高可读性,我尽可能地简化了代码 MainPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Contacts"
x:Class="Contacts.MainPage">
<ContentPage.BindingContext>
<local:MainViewModel x:Name="ViewModel" />
</ContentPage.BindingContext>
<ListView ItemsSource="{ Binding Contacts }">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{ Binding DisplayName }"
Detail="{ Binding Nickname }" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
MainViewModel.cs
public class MainViewModel
{
public ObservableCollection<Plugin.Contacts.Abstractions.Contact> Contacts { get; private set; }
public MainViewModel()
{
this.Contacts = new ObservableCollection<Plugin.Contacts.Abstractions.Contact>();
ReloadContacts();
}
public void ReloadContacts()
{
// Device may request user permission to get contacts access.
var hasPermission = CrossContacts.Current.RequestPermission()
.GetAwaiter()
.GetResult();
if (hasPermission)
{
this.Contacts.Clear();
List<Plugin.Contacts.Abstractions.Contact> contacts = null;
CrossContacts.Current.PreferContactAggregation = false;
if (CrossContacts.Current.Contacts == null)
{
return;
}
contacts = CrossContacts.Current.Contacts.ToList();
foreach (var contact in contacts)
{
this.Contacts.Add(contact);
}
}
}
}
public类主视图模型
{
公共可观测收集联系人{get;private set;}
公共主视图模型()
{
this.Contacts=新的ObservableCollection();
重新加载触点();
}
public void重载联系人()
{
//设备可能会请求用户权限以获取联系人访问权限。
var hasPermission=CrossContacts.Current.RequestPermission()
.getwaiter()
.GetResult();
如果(已获得许可)
{
this.Contacts.Clear();
列出联系人=空;
CrossContacts.Current.PreferContactAggregation=false;
if(CrossContacts.Current.Contacts==null)
{
返回;
}
contacts=CrossContacts.Current.contacts.ToList();
foreach(触点中的var触点)
{
this.Contacts.Add(contact);
}
}
}
}
希望这能有所帮助。大家好,欢迎来到StackOverflow。Xamarin.Mobile生产的是什么样的错误?您能否向我们展示一些您在Xamarin.Contacts方面遇到问题的代码?github
List Contacts=null;CrossContacts.Current.PreferContactAggregation=false//推荐联系人=CrossContacts.Current.contacts.Where(c=>!string.IsNullOrWhiteSpace(c.LastName)&&c.Phones.Count>0.ToList()
别忘了设置persmissions Android:Android.permissions.READ\u CONTACTS权限是必需的
实际上我想显示列表中的所有联系人,但不知道在哪里添加此代码??我需要在PCL中添加它吗???@Will:Hi&谢谢你的回复。手机不支持ios,也不在屏幕上显示任何东西,android也是如此。关于Xamarin.联系人我不知道我到底需要在哪里添加给定的内容看看Xamarin.EssentialsFYI:Xam.Plugin.Contacts不再处于开发阶段此插件未开发且不受支持
:当然,您可以随时将其作为应用程序的基础…;-)