1

在我的 ionic-cordova 应用程序中,我有拖放功能,我使用 平移事件拖放并使用它:

document.elementfrompoint(x,y)

在最新的 iOS 13.2 上返回空对象。经过分析,最新的升级只有 iOS 的 WKWebView 引擎。当我通过以下方式降级并回退到 UIWebView 时:

<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />

观察到它返回了一个完整的元素对象

在这两种情况下,我都尝试传递相同的 x 和 y 坐标。但它仍然返回一个空对象。谁能帮我解决这个问题?

4

1 回答 1

1

你能检查一下你的平移事件是否被触发了吗?在我的应用程序中,当在 iOS 13 上没有触发平移事件并且当我尝试调用 document.elementfrompoint(x,y) 时,我遇到了这个问题,返回 null。

对我来说,这是因为 iOS 13 支持指针事件而 Hammer 无法正确处理它。在这种情况下,Hammer 将默认输入类型作为指针事件。我通过禁用 Hammer 中的指针事件支持来解决它。我只为 iOS 禁用了它。

import { HammerGestureConfig } from "@angular/platform-browser";
import * as Hammer from 'hammerjs';

export class HammerConfiguration extends HammerGestureConfig {

   buildHammer(element: HTMLElement) {
    if ( navigator.userAgent.match(/iPad|iPhone|iPod/) ) {
      return new Hammer(element, {
        inputClass: Hammer.TouchMouseInput
      });
    } else {
      return new Hammer(element);
    }
}

也可以参考https://github.com/hammerjs/hammer.js/issues/1084 https://github.com/ionic-team/ionic/issues/19594

于 2019-11-28T10:49:18.113 回答