nvue 判断安卓 ios_nvue中map组件关于点击标注点踩坑

本文介绍了在uni-app的nvue中使用map组件时遇到的点击标注点事件处理问题,包括注意事项一:标注点必须有ID且ID不能为0;注意事项二:marker有callout时需监听callouttap事件;注意事项三:安卓与iOS设备中callouttap事件触发的差异及解决方案。
摘要由CSDN通过智能技术生成

最近在用uni-app中开发了一个app项目,因为里面有map模块,所以这里用nvue开发,在写@markertap时,真是一言难尽,这里把需要注意的地方记录一下以供大家参考。

API介绍

d5d4cbf2eb129dff887177e86c0397a5.png

注意事项一

当我们markers点击事件配置对应的函数时,如果你的标注点对应的数据对象中没有指定ID,此时你点击标注点时,函数是无法被触发的。

d2327f7c868556730c282d45714b35e5.png

解决方法也很简单,指定一个ID即可。

d2bc64d828f56c5ef38a1df27fd065ea.png

好了,这时候你点击标注点时,对应的函数应该就会触发了,不过这里还是有个需要注意的地方,那就是ID不能为 0。当然,如果你的标注点中有 callout 气泡数据时,那可能还是不太行。下面有将解决方案。

注意事项二

如果你的标注点中指定callout时,你点击标注点时你会惊讶的发现然并卵,markertap事件并不会得到触发,这是因为marker中如果有callout时,你需要给map组件指定一个callouttap事件才可以。

49f9bd27e83124730b60947f4d1806d1.png

在安卓手机上,如果你的marker中有callout时,点击标注点会触发的并不是markertap事件而是 callouttap事件。没错,虽然官方描述是点击标注点上的气泡触发,但是事实上,你点击标注点它同样会得到触发。

2dd22273c17843846ad401116d232ea2.png

至此,安卓手机应该是ok了。

注意事项三

上面说了,安卓手机应该OK了,言外之意当然是在苹果手机上还有surprise在等您去发掘。

事实上,如果你在苹果手机测试时,你会发现,callouttap事件只有在你点击标注点上的气泡时才会得到触发,这和官方的说法不谋而合。然后我就发现了这样一个规律,那就是当你的 marker标记有指定

callout气泡时,在安卓手机中callouttap事件可以完美驾驭markertap事件以及callouttap事件,也就是说在安卓手机中不管是点击标注点,还是标注点上面的气泡,callouttap事件都会得到触发。不过在苹果手机中,callouttap事件只有在点击标注点上的气泡时才会触发。不过问题不大,因为ios中,markertap是可以触发的,所以我们只需要在map组件中给callouttap事件和markertap事件指定相同的函数即可。

89e2f4633b5a180b2768890d4060b717.png

看一下效果:

c2ea02b838dd2b662638886c086e0dff.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值