ionic中 press(长按)最短时间默认是251ms,tap(点击)最长时间默认是250ms,所以一般情况下是不会产生冲突的,但是在移动开发中会遇到测试机卡顿 导致长按和点击产生混乱的现象。这个时候需要延长长按的最短时间。
方法1:使用angular 进行全局配置(优点:写法简洁,一目了然;缺点:需要全局配置,有局限性)
https://www.jianshu.com/p/6f2388028d31
方法2:通过获取点击开始事件和结束点击事件和计时器来区别长按和点击
import Rx,{Subscription} from "rxjs"
import moment from 'moment'
touchTime : Subscription
touchStartTime : string
touchStart(){
this.touchStartTime = moment().format("YYYY-MM-DD HH:mm:ss");
this.touchTime = Rx.Observable.timer(1000).subscribe(()=>{ //设置最短长按时间为1s
//长按逻辑
})
}
touchEnd(){
if(moment().diff(this.touchStartTime,'seconds')>=1){
//长按逻辑
}else{
//点击逻辑
}
this.touchTime.unsubscribe();
}