google place picker无法打开(react-native ios应用程序)

时间:2015-10-09 19:17:19

标签: javascript ios objective-c google-places-api react-native

我在反应原生的iOS应用程序中使用Google Place Picker。

使用react-native本机模块指南,我已导出要在Javascript中使用的Place Picker的本机模块。

但是当我调用placePickerWithCallback方法没有任何反应时,没有显示UI,甚至没有抛出错误。

RCT_EXPORT_METHOD(pickPlace:(RCTResponseSenderBlock)callback)
{

  GMSPlacePickerConfig *config = [[GMSPlacePickerConfig alloc] initWithViewport:nil];
  GMSPlacePicker *_placePicker = [[GMSPlacePicker alloc] initWithConfig:config];

  [_placePicker pickPlaceWithCallback:^(GMSPlace *place, NSError *error) {
    if (error != nil) {
      NSLog(@"Pick Place error %@", [error localizedDescription]);
      return;
    }

    if (place != nil) {
      callback(@[[self placeToJson:place]]);
    }
  }];
}

我检查了我的API密钥与sdk示例一起工作,并启用了所有Google API。 甚至Place Picker SDK中的另一种方法 - currentPlaceWithCallback也能正常工作并返回结果。

是否有一些额外的方法我应该通过react-native调用UI来调用UI?

1 个答案:

答案 0 :(得分:0)

我不太了解react-native,但这里的问题可能是地方选择器对象是本地范围的。来自the place picker docs

  

在场所拣选操作期间,必须保留对场所拣货员的参考。如果地方选择器对象的保留计数变为0,则取消操作将被取消,并且不会调用回调。

尝试将_placePicker变量作为类的成员变量,或以其他方式保存对它的引用,直到操作完成。再一次,不知道如何在React中做到这一点。