javascript - 功能策略已在本文档中禁用地理定位

标签 javascript angular google-maps ionic-framework ionic3

在我的 ionic 应用程序中,我正在尝试使用谷歌地图。当我使用下面的代码时,它确实在我的页面上显示了 map 。

let latLng = new google.maps.LatLng(-34.9290, 138.6010);

let mapOptions = {
  center: latLng,
  zoom: 15,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}

this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);

但是当我使用下面的代码时,我得到了

Geolocation has been disabled in this document by Feature Policy error.

this.geolocation.getCurrentPosition().then((position) => {

  let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

  let mapOptions = {
    center: latLng,
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }

  this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);

}, (err) => {
  console.log(err);
});

最佳答案

看看这个: https://github.com/apache/cordova-plugin-geolocation#ios-quirks ,也许它也能帮到你。

我使用的是 OpenStreetMap(不是 Google map ),但出现的问题是相同的,它必须存在于您的 *-Info.plist 中(如果是 iOS),因此为此,您必须添加config.xml(cordova 项目)中的以下几行:

<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
   <string>We want your location! Best regards NSA</string>
</edit-config>

您还可以检查这个地理定位插件 https://ionicframework.com/docs/native/geolocation/ ,因为它可以与谷歌地图或 OpenStreetMap 一起使用,但是......这不会改变你必须添加一些信息(消息)让手机用户知道你的应用程序为什么(以及何时)需要访问权限的事实用户的位置。

另一件事......然而......它不适用于命令组合:

ionic serve --lab -c

问题会一直存在,我仍然没有找到是否有办法解决这个问题。 但是上面的解决方案应该可以解决使用模拟器或设备本身的问题。 (当然,不带--lab选项,即在桌面浏览器测试模式下,也不存在这个问题)

另一种测试(修改 config.xml 后)运行情况的方法是使用 Ionic Dev App(iOsAndroid),它可以直接在 iPhone 上进行测试,例如实例。

Ionic Dev App at iPhone testing geolocation enter image description here

希望对你有所帮助。

关于javascript - 功能策略已在本文档中禁用地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51717856/

相关文章:

javascript - puppeteer 如何从窗口范围获取变量

javascript - jQuery addClass 在 for 循环中不起作用

css - 在 Google Autocomplete Pac-Input 中使用 Font Awesome

android - Google Play 服务位置 API 和 Google map 地理编码 API 之间有什么区别

javascript - 将 Canvas 弧划分为 364 天

javascript - float 粘性侧边栏未按预期工作

javascript - Angular 2 - 如何将 id 属性设置为动态加载的组件

routing - Angular2 有没有办法从路由器中获取路由列表?

提交时进行 Angular Material 验证

api - Google Maps API 上的雷达图像