Проблема с событиями панорамирования с помощью ionic WKWebView для iOS 13.2

В моем приложении ionic-cordova у меня есть функция перетаскивания, где я используюсобытия панорамирования для перетаскивания и использования этого:

document.elementfrompoint(x,y)

возвращает пустой объект в последней версии iOS 13.2. После анализа последнего обновления остался только движок WKWebView для iOS. Когда я понизил рейтинг и вернулся к UIWebView:

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

Замечено, что он вернул полный объект элемента.

И в обоих случаях я пытался передать одни и те же координаты x и y, но он все равно возвращает пустой объект. Может ли кто-нибудь помочь мне решить эту проблему?

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/1084https://github.com/ionic-team/ionic/issues/19594

Другие вопросы по тегам