MSGestureHold игнорируется WebBrowser Control для Windows Phone 8.1

Я обновляю приложение браузера для поддержки Windows Phone 8.1 и заметил, что MSGestureHoldevent не возникает.

Чтобы воспроизвести эту ошибку,

  1. Загрузите пример мини-браузера MS.
  2. Обновите проект до проекта WP8.1 в Visual Studio 2013 и добавьте IsScriptEnabled="True".
  3. Запустите проект на эмуляторе или устройстве WP8.1.
  4. Перейдите к этому пример касания и мыши.
  5. Прокрутите вниз до раздела Sample 1: handling the hold gesture и щелкните тест пользователей IE11.

Обратите внимание, что MSGestureHold не работает.

Однако проект работает при тестировании в

  1. Приложение Windows Phone Internet Explorer по умолчанию для WP8 и WP8.1
  2. Управление веб-браузером в приложении WP8.

Это ошибка?


person PutraKg    schedule 22.04.2014    source источник


Ответы (2)


Я предполагаю, что это ошибка элемента управления WebBrowser.

Я тестирую несколько событий жестов с помощью элемента управления WebBrowser для WP8.1, таких как pointerdown, MSGestureHold, MSGestureChange и MSGestureTap. Наконец, pointerdown, MSGestureChange и MSGestureTap могут запускаться нормально, за исключением MSGestureHold. Так что я думаю, что это ошибка.

person amazingthere    schedule 04.05.2014
comment
Что именно ты сделал? У меня проблемы с получением события GestureChange в WP8.1. Кроме того, для WP8.1 нет элемента управления WebBrowser. - person buddybubble; 04.09.2014
comment
WP8.1 также имеет элемент управления WebBrowser, возможно, вам следует импортировать какую-то библиотеку. Если вы хотите перехватывать событие удержания жеста, вы можете перехватывать события onmousedown и onmouseup вместо перехвата события MSGestureHold. - person amazingthere; 10.09.2014
comment
Нет, на самом деле элемент управления веб-браузером был превращен в элемент управления веб-просмотра с немного другой функциональностью. - person buddybubble; 11.09.2014

Этот код отлично работает в веб-просмотре для приложений WPhone 8.1:

var init = function(){
    var myState = // context
    var target = // DOM variable target
    var msg = new MSGesture();

    msg.target = target;

    target.addEventListener("MSGestureHold", function (evt) { buttonTactileListener.apply(myState, [evt, msg]); }, false);
    target.addEventListener("pointerdown", function (evt) { buttonTactileListener.apply(myState, [evt, msg]); }, false);
    target.addEventListener("MSGestureEnd", function (evt) { buttonTactileListener.apply(myState, [evt, msg]); }, false);
}
var buttonTactileListener = function (evt, msgesture) {
    var myState = this;
    if (evt.type == "pointerdown") {
        msgesture.addPointer(evt.pointerId);
        return;
    }
    if (evt.type == "MSGestureHold") {
        ///do something
        return;
    }

    if (evt.type == "MSGestureEnd") {
        // renew instance of handler
        msgesture = new MSGesture();
        msgesture.target = evt.target;
        return;
    }
}
person Thomas Gobert    schedule 19.03.2015