google 地点选取器未打开(反应本机 ios 应用程序)

google place picker doesn't open (react-native ios application)

我在本机反应 iOS 应用程序中使用 Google Place Picker。

使用 react-native native modules 指南,我已经导出了 Place Picker 的 native 模块,以便在 Javascript 中使用。

但是当我调用 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 工作并且 returns 结果。

在通过 react-native 调用时,我应该调用一些其他方法来显示 UI 吗?

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

A reference to the place picker must be retained for the duration of the place picking operation. If the retain count of the place picker object becomes 0, the picking operation will be cancelled and the callback will not be invoked.

尝试使 _placePicker 变量成为 class 的成员变量,或者保持对它的引用直到操作完成。同样,不确定如何在 React 中执行此操作。