漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案

  1. 漏刻有时百度地图API实战开发(1)华为手机无法使用addEventListener click 的兼容解决方案
  2. 漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关
  3. 漏刻有时百度地图API实战开发(3)自动获取地图多边形中心点坐标
  4. 漏刻有时百度地图API实战开发(4)显示指定区域在移动端异常的解决方案
  5. 漏刻有时百度地图API实战开发(5)区域限制移动端鬼畜抖动的解决方案
  6. 漏刻有时百度地图API实战开发(6)多个标注覆盖层级导致不能响应点击的问题
  7. 漏刻有时百度地图API实战开发(7)JavaScript开源库几何运算判断点是否在多边形内(电子围栏)
  8. 漏刻有时百度地图API实战开发(8)圆形区域周边搜索地图监听事件(覆盖物重叠显示层级\图像标注监听事件、setZIndex和setTop方法)

现象

漏刻有时项目开发中的调用了百度地图API,在PC端、IOS和安卓机型测试都没有问题。但是使用华为手机部分型号时,前端在监听点击事件的时候是使用 map.addEventListener('click',function(){...}),无法触发。或

原理

通过监听touchstart和touchmove两个事件中,x1,y1和x2,y2的差值(绝对),如果大于10px那么认为是拖动,否则认为是点击。

监听方式

在JavaScript中,map.addEventListener用于在Map对象上添加事件监听器。使用各种类型的事件,比如点击(click)、鼠标悬停(mouseover)等。当在地图上点击时,会触发一个事件,然后调用提供的函数。这个函数接收一个事件对象,从中可以获取关于被点击地点的信息。

当然,也可以绑定其他的事件,比如mouseover、mouseout等,只需要将事件类型替换即可。

javascript 复制代码
    //地图监听事件
    map.addEventListener('click', function (e) {
        var targets = e.overlay;
        //清除覆盖物;
        map.clearOverlays();
        var x = e.point.lng;
        var y = e.point.lat;
        var newPoint = new BMap.Point(x, y);
    })

解决方案

javascript 复制代码
    /*安卓手机端监听无效事件 - Begin*/
    map.addEventListener("touchmove", function (e) {
        map.enableDragging();
    });
    map.addEventListener("touchend", function (e) {
        map.disableDragging();
    });
    map.disableDragging();
    map.enableScrollWheelZoom(true);
    /*安卓手机端监听无效事件 - End*/

参考链接:


@漏刻有时

相关推荐
wanhengidc4 小时前
云手机是由什么组成的?
运维·服务器·web安全·游戏·智能手机
2501_909996304 小时前
2025年度手机好用便签app测评
智能手机
wanhengidc8 小时前
网站服务器都有哪些作用?
运维·服务器·科技·智能手机·云计算
空影星12 小时前
ValiDrive:一键验证USB真实容量
python·智能手机·django·flask
Digitally13 小时前
如何将照片从安卓手机传输到电脑?
android·智能手机·电脑
wanhengidc14 小时前
跨境电商为什么依赖于云手机
运维·服务器·游戏·智能手机·云计算
趣浪吧2 天前
AI在手机上真没用吗?
人工智能·智能手机·aigc·音视频·媒体
blackorbird2 天前
三星手机预装以色列公司开发的AppCloud应用争议事件
智能手机
wanhengidc2 天前
云手机的出现意味着什么
运维·服务器·web安全·智能手机·云计算
跨境海王哥2 天前
新手注册TikTok教程(手机版):注册准备、养号技巧、以及常见问题
智能手机