我有一个简单的网页,其中包含用户名和密码字段。如果我填写用户名和密码字段并使用" GO"键盘上的按钮数据正确地发布到服务器。
但如果我不使用键盘的GO按钮并点击"登录"按下网页密码作为******** e发送。似乎Android WebView
存在某种错误。
我通过从服务器输出RAW后期数据来解决这个问题。
请参阅:
这不会发生在Android或iOS上的Chrome中。只是我的Android WebView
。网页上没有任何可能导致此问题的JavaScript。我只是在输入密码。
这是在Android 5.0.2和5.1上。使用WebView
在同一应用中的Android 4.3上不会发生这种情况。
以下是我启动StoreWebActivity的方法:
Intent intent=new Intent(StoreUrlActivity.this, StoreWebActivity.class);
intent.putExtra("storeUrl", savedStoreUrl);
startActivity(intent);
以下是我在onCreate
活动中所做的事情:
this.webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(this, "android");
...
webView.loadUrl(storeUrl);
这个简单的表单存在测试问题(http://chrismuench.com/android_password_bug.php)
<?php
if (isset($_POST['password']))
{
var_dump($_POST['password']);
}
?>
<form action="" method="POST">
<input type="password" name="password">
<input type="submit">
</form>
这是一个裸骨的Android应用程序,使用Android工作室的Web视图显示错误
答案 0 :(得分:2)
感谢您提供有关此问题的完整信息。我能够在Android 5.1和6.0上重现它。它似乎是由为Web表单中的密码字段启用预测引起的。 修补程序已在v10.2.1 中发布,可在Google Play商店中找到。
Google在SDK 11中为网络表单密码添加了单独的输入类型,所以我很惊讶我们现在只看到这个问题。最近Chromium的内容肯定有所改变,因为恢复到Android系统WebView版本44.0.2403.117或更早版似乎也解决了这个问题。
答案 1 :(得分:0)
这与创建键盘的SocketScan蓝牙条码扫描器有关。当使用此键盘时,WebView中会出现此问题。我不确定此时是否会出现其他自定义键盘。