2017-04-10 24 views
1

我想在Xamarin.iOS应用访问地址簿和我曾尝试这样的代码:Xamarin的iOS访问地址薄请求许可打破应用

var addressBook = AddressBook.ABAddressBook.Create(out NSError error); 
if (addressBook != null) 
{ 
    addressBook.RequestAccess((bool granted, NSError accessError) => 
    { 
     if (granted) 
     { 
      //Do something 
     } 
    }); 
} 

此代码到ifadressBook是运行不为空。但addressBook.RequestAccess(...)不运行,并且应用程序退出而不落入catch子句。

有谁知道这段代码有什么问题?我怎样才能检测到这样的错误,在哪里寻找日志或什么东西?

我在Visual Studio 2017年使用Xamarin在Windows 10连接到Mac和iPhone 6

回答

5

是否包含在您的info.plist的关键NSContactsUsageDescription?

例如:

<key>NSContactsUsageDescription</key> 
<string>Your explanation to the user</string> 

不这样做通常会导致一个无声的崩溃。

另请注意,地址簿API自iOS 9起弃用,转而使用Contacts Framework。所以你可能想要实现那个。

+0

谢谢。为什么这不在Xamarin文档中?为什么这不会把我的抓住?!不错的一个 – Emad

+0

为什么它不在Xamarin文档中我不知道。但是,如果我没有弄错,那么例外是苹果公司的设计。为什么这会打败我..如果它有帮助,请接受它作为答案! –

+0

确定在5分钟内 – Emad