问题:在Android平板电脑上双击html页面的密码字段后,webview将变为空白。只需在html页面输入用户名和密码就没问题了。
测试:三星Galaxy平板电脑(GT-P7510)和摩托罗拉Xoom
布局文件摘要:
<LinearLayout
android:layout_width="@dimen/layout_xlarge_width"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="20dip"
android:orientation="vertical">
<TextView
android:id="@+id/urlview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/test"
/>
<Spinner
android:id="@+id/profile"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
</LinearLayout>
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="gone"
/>
</LinearLayout>
设置webview的代码:
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.clearCache(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
setUserAgent(getString(R.string.user_agent_suffix));
其他:
在webview上添加对缩放的支持或设置触摸和焦点监听器没有帮助。
谢谢!
答案 0 :(得分:1)
我有同样的问题,并考虑使用一个丑陋的html技巧,通过2个文本输入模拟密码输入:
<div style="position: relative;">
<input type="text" id="hiddenPwd" onkeyup="$('#fakePwd')[0].value = '*************'.substr(0, $('#hiddenPwd')[0].value.length);" />
<div style="position:absolute; top: 0; left: 0;"><input type="text" id="fakePwd" onfocus="$('#hiddenPwd')[0].focus();"/></div>
</div>
很好地工作,唯一的缺点是光标没有显示......
答案 1 :(得分:1)
我的申请中遇到了一些问题。看起来哪些bug会影响所有Honeycomb平板电脑。
如果打开硬件加速,问题就会消失。但是硬件加速的WebView在性能和透明度方面存在问题。
对我来说,在硬件加速窗口上运行精美的软件渲染WebView:
mWindow.setFlags(
Window.LayoutParam.FLAG_HARDWARE_ACCELERATED,
Window.LayoutParam.FLAG_HARDWARE_ACCELERATED);
...
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE);
PS:当然,您也可以在清单文件中为整个应用程序启用硬件加速。