提交 c27d5a70 编写于 作者: Q qiang

feat(App): 禁用 iOS 双击包含(滚动)手势

上级 5ab96aac
......@@ -2370,8 +2370,27 @@
const { subscribe } = UniViewJSBridge;
subscribe(VD_SYNC, onVdSync);
}
function preventDoubleTap() {
if (String(navigator.vendor).indexOf("Apple") === 0) {
let firstEvent = null;
let timeout;
document.documentElement.addEventListener("click", (event) => {
const TIME_MAX = 450;
const PAGE_MAX = 44;
clearTimeout(timeout);
if (firstEvent && Math.abs(event.pageX - firstEvent.pageX) <= PAGE_MAX && Math.abs(event.pageY - firstEvent.pageY) <= PAGE_MAX && event.timeStamp - firstEvent.timeStamp <= TIME_MAX) {
event.preventDefault();
}
firstEvent = event;
timeout = setTimeout(() => {
firstEvent = null;
}, TIME_MAX);
});
}
}
function initView() {
initSubscribeHandlers();
preventDoubleTap();
}
window.UniViewJSBridge = UniViewJSBridge$1;
function onWebviewReady() {
......
export function preventDoubleTap() {
if (String(navigator.vendor).indexOf('Apple') === 0) {
let firstEvent: MouseEvent | null = null
let timeout: number
// 用于全局禁用 iOS 双击包含手势
document.documentElement.addEventListener('click', (event) => {
const TIME_MAX = 450
const PAGE_MAX = 44
clearTimeout(timeout)
if (
firstEvent &&
Math.abs(event.pageX - firstEvent.pageX) <= PAGE_MAX &&
Math.abs(event.pageY - firstEvent.pageY) <= PAGE_MAX &&
event.timeStamp - firstEvent.timeStamp <= TIME_MAX
) {
event.preventDefault()
}
firstEvent = event
timeout = setTimeout(() => {
firstEvent = null
}, TIME_MAX)
})
}
}
import { initSubscribeHandlers } from './subscriber'
import { preventDoubleTap } from './gesture'
export function initView() {
initSubscribeHandlers()
preventDoubleTap()
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册