HarmonyOS 鸿蒙Next mapkit mapClick 不回调

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next mapkit mapClick 不回调

//地图点击事件 this.mapController?.on(“mapClick”, (position) => { if (this.isSelectModel) { this.isSelectModel = false this.loadReturnArea(this.mapController?.getCameraPosition().target!!) } })

mapkit mapClick 不回调
使用 mapEventManager 注册的话 其他事件也都不回调

2 回复

尝试使用如下demo,测试可以正常回调:

import { MapComponent, mapCommon, map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';

@Component
struct BasicMapDemo {
  private mapOptions?: mapCommon.MapOptions;
  private callback?: AsyncCallback<map.MapComponentController>;
  private mapController?: map.MapComponentController;

  aboutToAppear(): void {
    let target: mapCommon.LatLng = {
      latitude: 39.9181,
      longitude: 116.3970193
    };
    let cameraPosition: mapCommon.CameraPosition = {
      target: target,
      zoom: 15
    };
    this.mapOptions = {
      position: cameraPosition
    };

    this.callback = async (err, mapController) => {
      if (!err) {
        this.mapController = mapController;
        let markerOptions: mapCommon.MarkerOptions = {
          position: {
            latitude: 39.9181,
            longitude: 116.3970193
          }
        };
        this.mapController?.on("mapClick", (position) => {
          console.info('on click---')
        })
        await this.mapController?.addMarker(markerOptions);
      }
    }
  }

  build() {
    Stack() {
      MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback }).width('100%').height('100%');
    }.height('100%')
  }
}

以上是初步分析结论,如有疑问可以展开回复,看到后会继续协助定位阻碍点。

开源网站上收录了UI、系统接口、Web、创新特性等场景化鸿蒙示例DEMO,开发中可以参考: https://gitee.com/scenario-samples/demo-index

更多关于HarmonyOS 鸿蒙Next mapkit mapClick 不回调的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next mapkit mapClick 不回调”的问题,可能的原因及解决方法如下:

首先,确保你已经在map组件中正确注册了点击事件监听器。在鸿蒙系统中,这通常是通过设置相应的回调函数来完成的。检查你的代码,确保mapClick事件监听器已经被正确添加,并且回调函数是有效的。

其次,检查是否有其他事件或逻辑干扰了点击事件的回调。例如,如果地图上覆盖了其他UI元素,并且这些元素也响应点击事件,那么它们可能会阻止mapClick事件的回调。确保没有其他元素或逻辑在干扰点击事件的正常处理。

此外,还需要检查鸿蒙系统的版本和mapkit的版本是否兼容。有时候,系统或库的更新可能会引入新的bug或改变现有行为,导致旧代码无法正常工作。

如果以上步骤都无法解决问题,可能需要进一步检查mapkit的文档或示例代码,以确保你的实现方式与官方推荐的方式一致。同时,也可以考虑查看鸿蒙系统的开发者社区或论坛,看看是否有其他开发者遇到并解决了类似的问题。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部