Windows Phone 8.1的WebBrowser控件将忽略MSGestureHold
本文关键字:MSGestureHold 控件 WebBrowser Phone Windows | 更新日期: 2023-09-27 17:59:20
我正在更新浏览器应用程序以支持Windows Phone 8.1,我注意到没有引发MSGestureHold
事件。
为了重现这个错误,
- 下载MS Mini浏览器示例
- 在Visual Studio 2013中将该项目升级到WP8.1项目,并添加
IsScriptEnabled="True"
- 在WP8.1模拟器或设备上运行项目
- 导航到此触摸鼠标示例
- 向下滚动到
Sample 1: handling the hold gesture
部分,然后单击IE11用户测试
请注意,MSGestureHold
不起作用。
然而,当在中测试时,该项目正在运行
- WP8和WP8.1的默认Windows Phone Internet Explorer应用程序
- WP8应用程序中的WebBrowser控件
这是个虫子吗?
我想这是WebBrowser控件的错误。
我使用WP8.1的WebBrowser控件测试了几个手势事件,如pointerdown、MSGestureHold,MSMGestureChange和MSGestureTap。最后,可以正常触发pointerdown、MSGestureChange和MSMGestureTap,但MSGestureHold除外。所以我想这是一个错误。
此代码在WPhone 8.1应用程序的webview中运行良好:
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;
}
}