谷歌地点选择器未打开(反应原生 ios 应用程序)

Posted

技术标签:

【中文标题】谷歌地点选择器未打开(反应原生 ios 应用程序)【英文标题】:google place picker doesn't open (react-native ios application) 【发布时间】:2015-10-09 19:17:19 【问题描述】:

我在 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 示例,并且所有 Google API 都已启用。 甚至来自 Place Picker SDK 的另一种方法 - currentPlaceWithCallback 也可以工作并返回结果。

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

【问题讨论】:

【参考方案1】:

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

在地点选择操作期间必须保留对地点选择器的引用。如果地点选取器对象的保留计数变为0,则取消选取操作,不会调用回调。

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

【讨论】:

谢谢,将_placePicker 变量移动到类的成员变量中!

以上是关于谷歌地点选择器未打开(反应原生 ios 应用程序)的主要内容,如果未能解决你的问题,请参考以下文章

位置错误“谷歌播放服务不可用”,反应原生

在反应原生中链接谷歌地图应用程序时如何呈现方向?

EMFile:打开的文件太多,观看 - 构建 Release 反应原生 iOS 应用程序

世博会地点中的城市位置反应原生

如何从反应原生页面快速打开现有的 ViewController?

如何将文件从 iOS 反应原生应用程序保存到 Files 文件夹