更新:使用新发布的googlemaps API 3.35解决了问题
问题:
在尝试捏(或快速双击)放大时,如果地图视图上有标记,则该应用可能会崩溃。
直到Google发布使用新地图renderer的JS API 3.32才发生。我们曾经强制使用3.31,但是由于August已被删除。
使用:
Google地图实施(尝试4种方式):
var marker1 = new window.google.maps.Marker({
position: { lat: 39.304, lng: -76.617 },
map: this.map
});
var marker2 = new window.google.maps.Marker({
position: { lat: 39.305, lng: -76.616 },
map: this.map
});
使用常规js实现创建一个React组件:崩溃
我的标记组件:
class Marker extends Component {
componentDidMount() {
const { position, icon } = this.props;
this.marker = new window.google.maps.Marker({
position,
icon
});
}
componentWillReceiveProps(newProps) {
const { map, position } = newProps;
if (map && !this.marker.map) {
this.marker.setMap(map);
}
if (position.lat !== this.props.position.lat || position.lng !== this.props.position.lng) {
this.marker.setPosition(position);
}
}
componentWillUnmount() {
this.marker.setMap(null);
}
render() {
return false;
}
}
我如何使用此组件:
{_.map(studyAreas, (s, i) => (
<Marker
icon={s.icon}
position={s.position}
map={this.map}
key={i}
/>
))
}
相关链接
IOS : Cordova App Crash on Google Map api zoom in ios 11.3 iphone x
https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/75
在讨论这个github问题时,由于某些js库,似乎他们遇到了崩溃的问题。但是,即使我创建了一个简单的新phonegap应用程序但未引用任何额外的库,也遇到了这个问题。
任何帮助,讨论,想法都将不胜感激,谢谢!