我有一个Cordova应用程序,可在其中以多个视图显示Google地图。
我正在通过以下方式在div中创建地图实例
mapElement = document.createElement('div');
mapElement.style.width = '100%';
mapElement.style.height = '100%';
mapElement.setAttribute("id", "map");
map = new google.maps.Map(mapElement, {
center: SYDNEY,
zoom: 16,
disableDefaultUI: true,
gestureHandling: 'greedy'
});
每当我需要显示地图时,都会将此mapElement
附加到父div元素。
它似乎也可以在桌面浏览器,Android,甚至Mac上的Safari上运行。但它不适用于iPhone和iOS模拟器。
在iPhone和iOS模拟器上,只要我不触摸地图,该地图就会显示为灰色,如果我稍加拖动,它就会正确呈现。
我为我的代码创建了一个最小的解决方案 https://codepen.io/anon/pen/pGGMBq
注意:我想这似乎是由Maps API的最新更新引起的,因为几天前这种方法仍在起作用。
这是脚本
https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBXwFGK-MgYDbrQU0uLBmN372VefginLIU&libraries=geometry,drawing
我尝试过的事情
答案 0 :(得分:-1)
您必须提前声明对私有数据的访问。私人数据包括相机,位置,日历,照片,麦克风等。您可以通过在应用程序的Info.plist中添加使用键以及目的字符串来做到这一点,这就是您需要做的:
在添加Geolocation插件后,您需要在config.xml文件中添加以下内容。然后将其编译在应用程序的Info.plist中:
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios"
target="*-Info.plist">
<string>need location access to find things nearby</string>
<config-file>
最后,您将必须删除平台并再次添加。您可以使用以下命令执行此操作:
cordova platform rm ios
cordova platform add ios