H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation permission denied 或者 偶尔报AMap没有找到的

这篇具有很好参考价值的文章主要介绍了H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation permission denied 或者 偶尔报AMap没有找到的。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.解决报当前定位失败Geolocation permission denied:

geolocation permission denied,webview,android,java

 

 可以去高德api查看:常见问题 | 高德地图API (amap.com)

geolocation permission denied,webview,android,java 

图中红圈2,3,4,5,6对应Geolocation permission denied报错的原因,可对应修改。

如红圈2:用户打开定位选项即可:

geolocation permission denied,webview,android,java

 

 2.进入定位页面偶尔报 AMap没有找到的。

1.在index.html文件中;

  <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.12&key=自己的key">
      window.AMap = AMap;
    </script>

2.在封装高德api的文件下对应调整:

  /**
   * 用高德地图定位
   */
  amapLocate(
    complete?: (cityCode: string, cityName: string) => void,
    error?: () => void
  ): void {
    const AMap = (window as any).AMap;
    const mapObj = new AMap.Map("iCenter");
    mapObj.plugin("AMap.Geolocation", () => {
      const geolocation = new AMap.Geolocation({
        timeout: 100000, // 超过 100 秒后停止定位
      });
      mapObj.addControl(geolocation);

      geolocation.getCurrentPosition();
      AMap.event.addListener(
        geolocation,
        "complete",
        (data: {
          position: { lat: number; lng: number };
          addressComponent: { adcode?: string; province: string; city: string };
        }) => {
          const position = data.position;
          const addressComponent = data.addressComponent;
          this.LocationModule.SET_longitude_PERSIST(position.lng);
          this.LocationModule.SET_latitude_PERSIST(position.lat);
          if (complete) {
            complete(
              getCityCodeByAdcode(
                addressComponent
                  ? addressComponent.adcode
                  : LocationModule.defaultCityCode
              ),
              addressComponent
                ? addressComponent.city || addressComponent.province
                : LocationModule.defaultCityName // 直辖市 addressComponent.city 为空字符串,这时要取 province
            );
          }
        }
      );
      AMap.event.addListener(geolocation, "error", (errorData: unknown) => {
        console.error("locate >>> errorData", errorData);
        this.LocationModule.SET_longitude_PERSIST(-1);
        this.LocationModule.SET_latitude_PERSIST(-1);
        if (error) {
          error();
        }
      });
    });
  }

 文章来源地址https://www.toymoban.com/news/detail-524628.html

到了这里,关于H5页面在ios的浏览器上使用 高德地图 报当前定位失败Geolocation permission denied 或者 偶尔报AMap没有找到的的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包