小程序
小游戏
企业微信
微信支付
扫描小程序码分享
具体现象:开发工具中一直正常。真机调试模式下也一直正常。只有在真机环境下才有此问题。
真机环境(非扫码调试):第一次长按时间如果时间较短(比如1秒内),后续长按会则正常。
但只要有一次长按时间较长(比如超过3秒),此次长按能正常触发touchend及tap事件,而后续的所有长按(不管是否超过3秒)都会在longtap后自动触发touchcancel事件(确保手没有移动)。
机型:小米8
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
//index.js
Page({
data: {},
onLoad: function () { },
ctl_start: function (event) {
console.log("touchstart :", event.currentTarget.dataset);
wx.vibrateShort();
},
ctl_longtap: function (event) {
console.log("longtap :", event.currentTarget.dataset);
ctl_touchmove: function (event) {
console.log("touchmove :", event.currentTarget);
ctl_touchcancel: function (event) {
console.log("touchcancel :", event.currentTarget);
ctl_touchend: function (event) {
console.log("touchend :", event.currentTarget.dataset);
ctl_tap: function (event) {
console.log("tap :", event.currentTarget.dataset);
})
//index.wxml
<view bind:touchstart="ctl_start" bind:longtap="ctl_longtap" bind:touchmove="ctl_touchmove" bind:touchcancel="ctl_touchcancel" bind:touchend="ctl_touchend" bind:tap="ctl_tap" style="text-align:center;padding:50px;background-color:#efefef;">
<icon type="success" size="40" />
</view>
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
//index.js
Page({
data: {},
onLoad: function () { },
ctl_start: function (event) {
console.log("touchstart :", event.currentTarget.dataset);
wx.vibrateShort();
},
ctl_longtap: function (event) {
console.log("longtap :", event.currentTarget.dataset);
},
ctl_touchmove: function (event) {
console.log("touchmove :", event.currentTarget);
},
ctl_touchcancel: function (event) {
console.log("touchcancel :", event.currentTarget);
},
ctl_touchend: function (event) {
console.log("touchend :", event.currentTarget.dataset);
},
ctl_tap: function (event) {
console.log("tap :", event.currentTarget.dataset);
wx.vibrateShort();
},
})
//index.wxml
<view bind:touchstart="ctl_start" bind:longtap="ctl_longtap" bind:touchmove="ctl_touchmove" bind:touchcancel="ctl_touchcancel" bind:touchend="ctl_touchend" bind:tap="ctl_tap" style="text-align:center;padding:50px;background-color:#efefef;">
<icon type="success" size="40" />
</view>
1、长按保持3-5秒,这一次能正常触发touchend。
2、再次长按3-5秒,无法触发touchend事件,touchcancel被自动触发