Google chrome 禁用Chrome pinch zoom以在kiosk中使用
我们在kiosk模式下使用Chrome,用户不小心导致应用程序通过最近添加的pinch zoom支持进行缩放。 然后,他们认为自己已经破坏了它,干脆走开,让应用程序(以及随后的55英寸触摸屏)处于破坏状态 现在唯一有效的方法是停止超过2点的触摸事件的事件传播。问题是,在这种情况下,我们不能使用多点触摸应用程序,如果你动作快,浏览器会在javascript之前做出反应。在我们的测试中,这仍然是用户偶然发生的 我已经做了元标记,它们不起作用。老实说,我希望我可以禁用chrome缩放,但我找不到一种方法来做到这一点Google chrome 禁用Chrome pinch zoom以在kiosk中使用,google-chrome,zooming,kiosk,pinch,Google Chrome,Zooming,Kiosk,Pinch,我们在kiosk模式下使用Chrome,用户不小心导致应用程序通过最近添加的pinch zoom支持进行缩放。 然后,他们认为自己已经破坏了它,干脆走开,让应用程序(以及随后的55英寸触摸屏)处于破坏状态 现在唯一有效的方法是停止超过2点的触摸事件的事件传播。问题是,在这种情况下,我们不能使用多点触摸应用程序,如果你动作快,浏览器会在javascript之前做出反应。在我们的测试中,这仍然是用户偶然发生的 我已经做了元标记,它们不起作用。老实说,我希望我可以禁用chrome缩放,但我找不到一种方
如何阻止浏览器缩放?我们遇到了类似的问题,它表现为浏览器缩放,但javascript没有接收到触摸事件(有时在缩放开始前只有一个点) 我们发现了这些可能(但可能不是长期)的解决方案: 1.在使用kiosk模式时禁用按压/滑动功能 如果这些命令行设置保留在Chrome中,则可以执行以下操作:
chrome.exe --kiosk --incognito --disable-pinch --overscroll-history-navigation=0
- --禁用收缩-禁用收缩缩放功能
- --浏览历史记录导航=0-禁用滑动浏览功能
document.addEventListener('touchstart', function(event){
event.preventDefault();
}, {passive: false});
如果将基于触摸的功能附加到DOM的更高层,它将在冒泡到文档的preventDefault()调用之前激活。在Chrome中,包含eventListenerOptions参数也很重要,因为从Chrome 51 a开始
这将禁用正常的浏览器功能,如滑动滚动,但您可能必须自己实现这些功能。如果是全屏、不可滚动的kiosk应用程序,这些功能可能并不重要。因此,任何人在浏览此页面时都会意识到Chrome中禁用“收缩到缩放”的标志现在是: 谷歌Chrome/Chrome/Canary版本50以上:
chrome://flags/#touch-事件
谷歌Chrome/Chrome/Canary版本少于50或旧版本:
chrome://flags/#enable-挤压
自51.0.2704.84 m版起,chrome://flags/#touch-events禁用所有触摸事件,不仅仅是按压功能。仅供参考。希望谷歌在未来的版本中会返回此功能。我正在处理相同的问题。我认为我可以用遵循方法
- 确定html元素的css像素宽度:
document.documentElement.clientWidth
- 将此测量值与kiosk屏幕的已知像素宽度进行比较
- 如果html元素的宽度(以css像素为单位)比屏幕的宽度(以物理像素为单位)更大,则意味着它是按比例缩放的
- 如果html元素已缩放,请对body元素应用缩放以进行补偿。公式为`body.style.zoom=htmlElementClientWidth/screenPhysicalPixelWidth
更多关于屏幕像素与css像素的对比,以及关于html元素如何扩展以填充可用空间的讨论。目前在Chrome(54)中工作的另一个解决方案是为
'touchstart'
事件添加事件侦听器,并调用preventDefault()
基于事件上的目标触摸
或触摸
的长度
这个解决方案可以防止挤压(任何两个手指的手势),但仍然可以灵活地响应事件。这是一个很好的解决方案,因为它不需要您完全禁用触摸事件(如果您想使用chrome标志禁用夹点,则根据需要,因为chrome://flags/#enable-夹点
不再存在)
window.addEventListener('touchstart',函数(e){
如果(e.targetTouches.length==2){
e、 预防默认值();
}
},false);
一些无法在Chrome上压缩缩放的文本(在54中测试)
这将禁用浏览器对所有平移和缩放手势的处理。该手势仍可由javascript代码处理
感谢您指出该标志。他们初始化了该标志,但没有设置标志来禁用。有一段时间,这是一个严重的问题。我们可以访问硬件,因此启动命令行或仅使用标志对我们非常有效。第一个解决方案(chrome标志)对我来说非常有吸引力,非常感谢。广告3)默认情况下,事件监听器设置为被动,因为Chrome 56(而非51),因为Chrome 80
overscroll history navigation=0
不起作用#触摸事件:禁用全触摸屏,而不仅仅是收缩缩放
html {
touch-action:none;
}