我正在开发一个 Web 应用程序,它将部署在各种设备上,从台式机到 Android 手机,再到黑莓手机。必须支持这样不同的设备,存在两种不同的界面:触摸和非触摸。
问题是不支持触控的黑莓设备,例如黑莓 9300,似乎错误地支持触控事件。即,
'ontouchstart' in window;
返回true
。
到目前为止,我只是依靠浏览器嗅探,尽管它很糟糕:
if (window.navigator.userAgent.match(/BlackBerry/i)) {
doStuff();
}
但是现在我要支持黑莓手电筒,也就是触控,所以后者就不行了。当然,我可以尝试更精确的正则表达式来进行浏览器嗅探,但我觉得我正在走向灭亡。
是否有更可靠的方法来检测对触摸事件的支持,这也适用于黑莓设备?