f***@163.com
f***@163.com
  • 发布:2025-01-03 14:33
  • 更新:2025-01-03 14:33
  • 阅读:19

【报Bug】鸿蒙 NEXT 系统,canvas 组件的所有 touch 事件没有 x 和 y 坐标

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 12.7.6

HBuilderX类型: 正式

HBuilderX版本号: 4.29

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS NEXT Developer Beta1

手机厂商: 模拟器

手机机型: Huawei Phone

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

示例代码

<!-- 手写板区域 -->  
<view class="sign-content">  
                <!-- 手写板 -->  
                <canvas  
                    canvas-id="sign"  
                    class="sign"  
                    :disable-scroll="true"  
                    @touchstart="onTouchStart"  
                    @touchmove="onTouchMove"  
                    @touchend="onTouchEnd"  
                    @touchcancel="onTouchEnd"  
                />  
</view>
/**  
 * 手指按下事件  
 * @param {TouchEvent & WechatMiniprogram.TouchCanvas} event 触摸事件  
 */  
function onTouchStart(event: TouchEvent & WechatMiniprogram.TouchCanvas): void {  
    console.log(JSON.stringify(event))  
}  

/**  
 * 手指移动事件  
 * @param {TouchEvent & WechatMiniprogram.TouchCanvas} event 触摸事件  
 */  
function onTouchMove(event: TouchEvent & WechatMiniprogram.TouchCanvas): void {  
    console.log(JSON.stringify(event))  
}  

/**  
 * 手指抬起事件  
 * @param {TouchEvent & WechatMiniprogram.TouchCanvas} event 触摸事件  
 */  
function onTouchEnd(event: TouchEvent & WechatMiniprogram.TouchCanvas): void {  
    console.log(JSON.stringify(event))  
}

预期结果:

changedTouches 字段与 touches 字段有手指按下,移动,抬起时的横纵坐标值(x 与 y)

实际结果:

changedTouches 字段与 touches 字段为空对象

bug描述:

项目组使用 uni-app 开发一套跨平台的 APP,vue3 + TypeScript 模式,其中有一个电子签名的功能,使用 uni-app 的 canvas 组件进行开发,开发完成后在微信小程序,Android 和 iOS 端能正常进行签名操作,但是在鸿蒙 NEXT 系统上,无法正常进行签名操作,签名时无笔迹。
通过打印日志查看,微信小程序,Android 和 iOS 端 uni-app 的所有touch 事件(touchstart,touchmove,touchend,touchcancel)中,参数 event 的 touch 字段、changedTouches 字段均有触摸及滑动时的x,y坐标。
但是在鸿蒙 NEXT 系统中,触摸事件参数 event 的 touch 字段、changedTouches 字段为空对象,打印的对象示例如下:

{  
    "defaultPrevented": false,  
    "timeStamp": 15058.199999999255,  
    "_stop": false,  
    "_end": false,  
    "type": "onTouchstart",  
    "bubbles": false,  
    "cancelable": false,  
    "changedTouches": {  

    },  
    "currentTarget": {  
        "dataset": {  
            "vCc6f878c": ""  
        },  
        "id": "",  
        "offsetLeft": 0,  
        "offsetTop": 0  
    },  
    "detail": {  

    },  
    "target": {  
        "dataset": {  
            "vCc6f878c": ""  
        },  
        "id": "",  
        "offsetLeft": 0,  
        "offsetTop": 0  
    },  
    "touches": {  

    }  
}
2025-01-03 14:33 负责人:DCloud_UNI_OttoJi 分享
已邀请:

要回复问题请先登录注册