Android:WebView按键事件:如何获取有用的按键数据

Android:WebView按键事件:如何获取有用的按键数据,android,webview,keydown,Android,Webview,Keydown,有没有人有过在(Android)网络视图中使用contenteditable和keycodes的经验 我正在使用WebView编写一个Android应用程序,需要监控关键事件。我使用的是jQuery,所以我使用的是$(document).on('keydown') 问题是,接收到的事件只有在其为keycode13/'Enter'时才包含有用的信息。退格、删除或常规字符(我需要能够监视所有这些字符)返回229和“未识别”的值 我的调试输出如下所示: e = {"originalEvent":{"i

有没有人有过在(Android)网络视图中使用contenteditable和keycodes的经验

我正在使用WebView编写一个Android应用程序,需要监控关键事件。我使用的是jQuery,所以我使用的是
$(document).on('keydown')

问题是,接收到的事件只有在其为keycode13/'Enter'时才包含有用的信息。退格、删除或常规字符(我需要能够监视所有这些字符)返回229和“未识别”的值

我的调试输出如下所示:

e = {"originalEvent":{"isTrusted":true},"type":"keydown","target":{"sizzle1500307408528":{"undefined":{"parentNode":[5,3,true]}}},"currentTarget":{"sizzle1500307408528":{"undefined":{"parentNode":[5,3,true]}}},"timeStamp":5361.655000000001,"jQuery310027283423097243387":true,"delegateTarget":{"location":{"ancestorOrigins":{},"origin":"file://","protocol":"file:","host":"","hostname":"","port":"","search":"","hash":""},"jQuery3100272834230972433871":{"events":{"touchend":[{"type":"touchend","origType":"touchend","guid":1,"selector":".script p","needsContext":false,"namespace":""}],"touchstart":[{"type":"touchstart","origType":"touchstart","guid":2,"selector":".script p","needsContext":false,"namespace":""}],"touchmove":[{"type":"touchmove","origType":"touchmove","guid":3,"selector":".script p","needsContext":false,"namespace":""}],"focusin":[{"type":"focusin","origType":"focus","guid":4,"selector":".script","needsContext":false,"namespace":""}],"focusout":[{"type":"focusout","origType":"blur","guid":5,"selector":".script","needsContext":false,"namespace":""}],"paste":[{"type":"paste","origType":"paste","guid":6,"selector":".script","needsContext":false,"namespace":""}],"selectionchange":[{"type":"selectionchange","origType":"selectionchange","guid":7,"namespace":""}],"input":[{"type":"input","origType":"input","guid":8,"selector":".script","needsContext":false,"namespace":""}],"keydown":[{"type":"keydown","origType":"keydown","guid":9,"selector":".script","needsContext":false,"namespace":""}]},"focusin":1,"focusout":1}},"handleObj":{"type":"keydown","origType":"keydown","guid":9,"selector":".script","needsContext":false,"namespace":""}}

e.keyCode = 229

e.key = Unidentified
我的假设是229(或0xe5)被返回,因为这是与IME输入()相关的“进程”键代码。但不管怎样,我看不到任何方法来获得键值


(我也很好奇为什么e.KeyCode和e.keyEvent是值,而在e的转储文件中没有KeyCode或keyEvent。但可能还有一个问题。)

这里有一个简单的JSFiddle来演示它:在常规浏览器(即桌面浏览器)中,它工作正常;从Chrome到Android,情况并非如此。经过进一步研究,这似乎是一个众所周知(且备受抱怨)的问题,只针对Android Chrome,而不是mobile Safari等。键码在Android Chrome上不起作用,也不会起作用。这里有一个快速的JSFIDLE演示:从常规浏览器(即桌面Chrome)上看,它工作正常;从Chrome到Android,情况并非如此。进一步研究表明,这似乎是一个众所周知的(且备受抱怨的)问题,只针对Android Chrome,而不是mobile Safari等。按键码在Android Chrome上不起作用,也不会起作用。