谷歌地点选择器未打开(反应原生 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 应用程序