我在Xcode 6.0.1上创建了cordova 2.8.0 iOS项目

该项目在具有iOS 8的iPhone 6模拟器上运行

我正在使用的https://github.com/hazemhagrass/ContactPicker插件在Android上运行良好(打开了联系人叠加层,当用户选择联系人时,控件将返回所选联系人的姓名,电话号码,电子邮件等)

但是在iOS中,我遇到了一些问题。

我在ContactPicker.m中收到的警告显示在快照中

现在,联系人叠加可以很好地打开了。

但是当我选择一个联系人时,不会返回所选联系人的详细信息。我只看到所选联系人的详细信息页面,并且控件没有像Android上那样返回到Phonegap应用程序

ContactPicker.m的代码
https://github.com/hazemhagrass/ContactPicker/blob/master/src/ios/ContactPicker.m

ContactPicker.h的代码
https://github.com/hazemhagrass/ContactPicker/blob/master/src/ios/ContactPicker.h

谢谢你的帮助

很少有其他见识,我不是Objective C的人,但是通过调试,我发现在弹出叠加层时会调用ContactPicker.m的“chooseContact”方法,此后,当用户选择联系人时,不会从ContactPicker.m选择其他方法但是,一旦我按下“取消”按钮,就会调用“peoplePickerNavigationControllerDidCancel”方法,它会返回到Phonegap App,而没有任何contactInfo。

最佳答案

问题已解决

只需在ContactPicker.m中包含以下代码

- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
    [self peoplePickerNavigationController:peoplePicker shouldContinueAfterSelectingPerson:person];
}

资料来源:
  • ABPeoplePickerNavigationController changes with iOS8?
  • People Picker with ios 7, and ios 8
  • 10-08 12:03