Cordova iOS Contact Picker 本机覆盖插件无法正常工作

Posted

技术标签:

【中文标题】Cordova iOS Contact Picker 本机覆盖插件无法正常工作【英文标题】:Cordova iOS Contact Picker Native overlay plugin not working properly 【发布时间】:2014-10-25 21:42:26 【问题描述】:

我在我的 Xcode 6.0.1 上创建了一个 cordova 2.8.0 ios 项目

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

我使用的插件是 https://github.com/hazemhagrass/ContactPicker,它在 android 上运行良好(联系人覆盖打开,当用户选择联系人时,控件返回所选联系人的姓名、电话号码、电子邮件等)

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

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

现在联系人叠加层可以正常打开。

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

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。

【问题讨论】:

【参考方案1】:

问题解决了

只需在 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

【讨论】:

以上是关于Cordova iOS Contact Picker 本机覆盖插件无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

您如何指定 Contact.photos 的 URL?

垂直滚动在 iOS 上不起作用,但在 Android 上运行良好

react-native-picke Cannot read property '_init' of undefined

从Swift 2.0 Contact Framework iOS中的CNContactPicker获取电子邮件地址

使用 cordova-ios 5 更新 Cordova 9

Cordova 6.0.0 iOS 本地化与 cordova-ios@4.0 和 Xcode 7.2.1