8***@qq.com
8***@qq.com
  • 发布:2020-04-10 10:47
  • 更新:2020-04-15 15:19
  • 阅读:2267

【报Bug】2.6.11 webview重大bug!!

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容] 苹果webview引入高德地图,地图绑定的点击事件均会被触发两次

重现步骤

[步骤] 直接用web-view组件src链接高德官方示例:https://lbs.amap.com/api/javascript-api/example/event/map-click-event,
在showInfoClick函数中打印日志,如图所示

[结果]会看到控制台打印两次日志,问题出现在苹果13.3,其他版本及安卓均没条件测试,希望及时修复!!!

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]2.6.11

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]853793682

2020-04-10 10:47 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

此问题已确认是因为Webview的userAgent不正确导致,已修复,请更新到HBuilderX2.6.13+版本。

临时解决方案,在引入高德地图之前,加入如下代码:

    if (/\(null\)/.test(navigator.userAgent)) {  
        Object.defineProperty(navigator, 'userAgent', {  
            get() {  
                return 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0'  
            }  
        })  
    }
  • 8***@qq.com (作者)

    厉害,谢谢!

    2020-04-14 14:16

DCloud_iOS_XHY

DCloud_iOS_XHY

真机测试视频在附件中请查看,既然回复你就是认真排查了问题,解决问题的前提是复现问题,官方还真没时间找借口敷衍,想解决问题就好好的报bug,描述清楚复现环境,上传你复现问题的demo

  • 8***@qq.com (作者)

    上面问题描述我给了是苹果13.3出现的问题,可能字太小没看到吧。不过还是谢谢你关注我的问题

    2020-04-14 14:18

DCloud_UNI_GSQ

DCloud_UNI_GSQ

你好,能否说细点,nvue还是vue,以及复现步骤能否说一下,我也来跟进一下这个问题

DCloud_iOS_XHY

DCloud_iOS_XHY

你好,是在 nvue 还是 vue 页面?

DCloud_iOS_XHY

DCloud_iOS_XHY

刚刚验证了一下,模拟器中加载高德示例确实会出现响应两次的问题,真机测试是正常的,然后自己写了个示例测试模拟器和真机都是正常的,这个应该是高德地图实现的问题了,你可以反馈给高德官方;下面是测试示例你可以运行测试一下;

<!doctype html>  
<html>  
<head>  
    <meta charset="utf-8">  
    <title></title>  
    <style type="text/css">  
        .page {position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: red; color: #fff;}  
    </style>  
</head>  
<body>  
    <div class="page">  
    </div>  
    <script type="text/javascript">  
        var ind  = 0  
        var page = document.querySelector(".page");  
   //      page.onclick = function (e) {  
            // ind += 1;  
   //          page.innerHTML = "click::" + ind;  
   //          console.log("click::", e);  
   //      }  
        page.addEventListener("touchstart", function(e){  
            ind += 1;  
          page.innerHTML = "touchstart::" + ind;  
            console.log("touchstart::", e);  
        });  
    </script>  
</body>  
</html>
  • 8***@qq.com (作者)

    2.6.9版本明明是好的,产品都上线了,一更新到2.6.11就出问题了。请用2.6.9和2.6.11分别测试一下,就是新版本的bug

    2020-04-14 09:42

  • 8***@qq.com (作者)

    自己写的点击事件是好的,但是高德地图很多人都要用的好吧,因为一次版本更新就用不了了,以后人家怎么用高德地图

    2020-04-14 09:46

  • DCloud_iOS_XHY

    回复 8***@qq.com: 2.6.11真机测试没有问题,把你测试有问题的工程上传一下,还有你测试的机器型号及 iOS 版本 发一下

    2020-04-14 11:03

kdb

kdb

遇到了相同的问题 在2.6.9版本的HBX上模拟器和真机都是正常的,同样的写法在2.6.11的版本上模拟器和真机都会触发两次点击事件,也不是说模拟器异常,真机正常,是都有BUG,希望官方能够重视下,不要敷衍,不然只能停留在2.6.9的版本了

  • DCloud_iOS_XHY

    请上传一个真机复现的视频

    2020-04-14 11:02

  • DCloud_UNI_GSQ

    你好,能否说细点,nvue还是vue,以及复现步骤能否说一下,我也来跟进一下这个问题

    2020-04-14 11:32

DCloud_App_Array

DCloud_App_Array

此问题已确认是因为Webview的userAgent不正确导致,已修复,请更新到HBuilderX2.6.13+版本。

该问题目前已经被锁定, 无法添加新回复