Проблема с событиями панорамирования с помощью 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