我有一个内置WebView的Android 3.0应用程序。 webview打开一个使用java脚本的网站。打开网站工作正常。但每当我点击TextField时,键盘都不会出现。
我已经尝试过了: Tapping form field in WebView does not show soft keyboard
但没有成功。键盘似乎很快出现,然后消失。 从我的角度来看,这是由一些JavaScript引起的。这是输入字段之一的html:
<input id="ToolbarOkCode" class="urEdf2TxtEnbl" type="Text" style="text-align:;width:150px;" value="" name="ToolbarOkCode" lsevents="{'Change':[{'ClientAction':'none'},{'type':'TOOLBARINPUTFIELD'}],'Enter':[{'ClientAction':'submit','PrepareScript':'return its.XControlSubmit();','ResponseData':'delta','TransportMethod':'partial'},{'type':'TOOLBARINPUTFIELD','~XRequest':'X'}]}" lsdata="{0:'',1:'',2:'',3:20,4:200,5:false,6:false,7:true,8:false,9:false,10:'STRING',11:'F4LOOKUP',12:'150px',13:'LEFT',14:false,15:'',16:false,17:false,18:false,19:'AUTO',20:true,21:'NONE',22:'MM/dd/yyyy',23:false,24:'',25:'',26:false,27:false,28:'',29:'NORMAL',30:1,31:false,32:0,33:0}" ct="I" autocomplete="off" ti="0" tabindex="0" maxlength="200">
答案 0 :(得分:5)
我为我的问题找到了解决方案,但它非常具体,我希望它能在某个时候帮助某人......
我延长了WebViewClient
,并且覆盖了它的一些功能。
当我在javascript:
上加载了一个预设onLoadResource()
时,我的问题就开始了。由于某种原因,这样做会导致整个键盘异常。我将脚本移到onPageFinished()
上运行,WebView
再次正常运行。
答案 1 :(得分:0)
我已经使用了你的代码然后尝试在Android 2.2上运行。它运行正常并显示键盘输入值。我发布了我运行的完整代码
String str="<input id=\"ToolbarOkCode\" class=\"urEdf2TxtEnbl\" type=\"Text\" style=\"text-align:;width:150px;\" value=\"d\" " +
" name=\"ToolbarOkCode\" lsevents=\"{'Change':[{'ClientAction':'none'},{'type':'TOOLBARINPUTFIELD'}],"+
"'Enter':[{'ClientAction':'submit','PrepareScript':'return its.XControlSubmit();','ResponseData':'delta','TransportMethod':'partial'},"+
"{'type':'TOOLBARINPUTFIELD','~XRequest':'X'}]}\" lsdata=\"{0:'',1:'',2:'',3:20,4:200,5:false,6:false,7:true,8:false,9:false,10:'STRING',11:"+
"F4LOOKUP',12:'150px',13:'LEFT',"+
"14:false,15:'',16:false,17:false,18:false,19:'AUTO',20:true,21:'NONE',22:'MM/dd/yyyy',23:false,24:'',25:'',26:false,27:false,28:'',"+
"29:'NORMAL',30:1,31:false,32:0,33:0}\"" +
"ct=\"I\" autocomplete=\"off\" ti=\"0\" tabindex=\"0\" maxlength=\"200\">";
WebView webView=new WebView(this);
webView.setFocusableInTouchMode(true);
webView.loadData(str, "Text/html","utf-8");
setContentView(webView);
希望这会对你有所帮助:)。