android webview键盘长时间不会出现输入值

时间:2011-11-13 23:47:36

标签: android webview android-softkeyboard

我有一个内置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">

2 个答案:

答案 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);

希望这会对你有所帮助:)。