离子角度应用程序。谷歌地图API加载问题

问题描述 投票:0回答:1

我正在开发一个利用 Google 地图 API 的 Ionic Angular 项目。我将 API 脚本直接包含在 index.html 文件中或动态地将其加载到项目中。我特别需要脚本的 beta 版本来访问标准包中不可用的某些方法,因此我不使用任何用于 Google 地图的 npm 包。

在浏览器和 Android 版本中,API 都按预期工作。然而,iOS 上出现了以前不存在的问题(这可能是巧合,但在使用清洁软件清洁我的电脑后出现了问题,该软件还清除了缓存和 iOS 版本的 Xcode)。

问题: iOS 上的 API 访问不完整。由于某种原因,在 iOS 中,google.maps 对象仅公开一些属性,而在浏览器和 Android 环境中,google.maps 对象包含大量可访问的方法,包括动画和 LatLng(),这些方法在我的iOS 构建。这会导致项目中出现错误。 Capacitor 或 WebView 在 iOS 上加载脚本的方式是否存在问题?这很令人费解,因为它曾经工作得很好。

我回滚到旧版本(几个月、半年前),一切正常,但没有帮助。唯一改变的是,之前在 Xcode 中构建时可以使用 iOS 14,但现在只有 iOS 17。

地图已完全停止显示,可能也是因为脚本未完成加载。 我还注意到,在 Android 和浏览器中,加载了三个额外的 Google 脚本,而 iOS 中则没有:

src="https://maps.googleapis.com/maps-api-v3/api/js/55/11a-beta/intl/uk_ALL/common.js" src =“https://maps.googleapis.com/maps-api-v3/api/js/55/11a-beta/intl/uk_ALL/util.js” src =“https://maps.googleapis.com/maps-api-v3/api/js/55/11a-beta/intl/uk_ALL/marker.js”

是否有人遇到过类似问题,或者可以提供有关可能导致 iOS 上 Google 地图 API 方法选择性可访问性的原因的见解?

从浏览器/android 加载脚本的示例

iOS 中的相同脚本

我尝试使用各种方法加载脚本,但没有任何帮助。

我的加载 API 的 url https://maps.googleapis.com/maps/api/js?key=****&v=beta&libraries=marker,geometry,places&callback=initMap

angular google-maps ionic-framework
1个回答
0
投票

如果我为每个库分别连接 API 3 次,或者从 beta 版本切换到任何稳定版本(例如 3.55),问题就解决了。但是,它缺少我的目的所需的 AdvancedMarkerView。因此,我被迫为除标记库之外的所有内容连接稳定版本,我将标记库与测试版本分开连接。我不明白为什么会发生这种情况...这不是我第一次遇到这样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.