Google位置选择器没有打开(react-native ios应用)

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

本文关键字:react-native ios 应用 位置 选择器 Google      更新时间:2023-09-26

我在一个react-native iOS应用程序中使用Google Place Picker

使用react-native本地模块指南,我导出了Place Picker的本地模块,以便在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示例和所有谷歌API都启用了。甚至还有一个来自Place Picker SDK- currentPlaceWithCallback的方法可以工作并返回结果。

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

我不太了解react-native,但这里的问题可能是位置选择器对象是局部作用域的。从位置选择器docs:

对位置选取器的引用必须在位置选取操作期间保留。如果位置拾取器对象的保留计数变为0,则拾取操作将被取消,并且不会调用回调。

尝试将_placePicker变量作为类的成员变量,或者保留对它的引用,直到操作完成。同样,不确定如何在React中做到这一点。