(Angular 4) 如何绑定全局触摸事件处理程序以禁用 iOS Safari 页面拖动?

(Angular 4) How to a Bind Global Touch Event Handler to Disable iOS Safari Page Drag?

这里的实际问题是我有一个 Angular 4 应用程序,它有一个 D3.js 图表,通过用户触摸拖动(与 'touchstart' 绑定)接受输入。用户将针拖动到一个值,该值在触摸结束时注册(绑定 'touchend')。

但是在移动浏览器上,至少在 iOS Safari 上,当我触摸并开始拖动整个 window 开始移动...就像向右拖动开始显示上次访问的页。

我将尝试这个作为修复:Prevent iOS safari from moving web-page window so drag event can happen

但是我需要在 Angular 中注册一个全局事件处理程序 4 – 如何实现这个,或者对这个问题有更好的建议?

不确定你真正的问题是什么..

如果您谈论的是 Safari 历史记录手势(从屏幕外向右滑动开始显示上次访问的页面),那么它似乎是在 OS/browser 级别处理的,我们没有任何回调,在这里查看评论: iOS 7 - is there a way to disable the swipe back and forward functionality in Safari?

找到了解决这个问题的方法!将其添加到 index.html 中的头部或在您的 JS 脚本中的其他地方定义:

<script>
  document.ontouchmove = function(event) {
    event.preventDefault();
  }
</script>