我正在尝试访问Xamarin.iOS应用中的地址簿,并且尝试了以下代码:
var addressBook = AddressBook.ABAddressBook.Create(out NSError error);
if (addressBook != null)
{
addressBook.RequestAccess((bool granted, NSError accessError) =>
{
if (granted)
{
//Do something
}
});
}
此代码在
if
中运行,并且adressBook
不为null。但是addressBook.RequestAccess(...)
不会运行,并且应用程序不退出catch
子句就退出。有人知道这段代码是什么问题吗?如何检测此类错误,在哪里查找日志或其他内容?
我在连接到Mac和iPhone 6的Windows 10上的Visual Studio 2017中使用Xamarin
最佳答案
您是否在info.plist中包括了NSContactsUsageDescription键?
例如:
<key>NSContactsUsageDescription</key>
<string>Your explanation to the user</string>
不这样做通常会导致无提示崩溃。
另请注意,自iOS 9起,不推荐使用地址簿API,而推荐使用Contacts Framework。因此,您可能想要实现这一点。
关于c# - Xamarin iOS访问通讯录请求权限中断应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43318689/