Android 5.0.2 web 查看密码字段没有post 密码实际输入
Android 5.0.2 web view password field does not post password actually typed
我有一个简单的网页,其中包含用户名和密码字段。如果我填写用户名和密码字段并使用键盘上的 "GO" 按钮,数据 post 将正确发送到服务器。
但是,如果我不使用键盘的 GO 按钮并单击网页上的 "Login" 按钮,密码将以 *********e 形式发送。似乎 Android WebView
有某种错误。
我通过从服务器输出 RAW post 数据解决了这个问题。
查看:
在 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
中为 activity 所做的:
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 studio 显示了 web 视图
这与创建键盘的 SocketScan 蓝牙条码扫描器有关。使用此键盘时,此问题会在 WebView 中发生。我不确定此时其他自定义键盘是否会发生这种情况。
感谢您提供有关此问题的如此完整的信息。我能够在 Android 5.1 和 6.0 上重现它。它似乎是由为网络表单中的密码字段启用预测引起的。 修复已在 v10.2.1 中发布,可在 Google Play 商店中获取。
Google 在 SDK 11 中为 Web 表单密码添加了单独的输入类型,所以我很惊讶我们现在只看到这个问题。 Chromium 最近一定发生了一些变化,因为恢复到 Android System WebView 版本 44.0.2403.117 或更早版本似乎也解决了这个问题。
我有一个简单的网页,其中包含用户名和密码字段。如果我填写用户名和密码字段并使用键盘上的 "GO" 按钮,数据 post 将正确发送到服务器。
但是,如果我不使用键盘的 GO 按钮并单击网页上的 "Login" 按钮,密码将以 *********e 形式发送。似乎 Android WebView
有某种错误。
我通过从服务器输出 RAW post 数据解决了这个问题。
查看:
在 Android 或 iOS 的 Chrome 中不会发生这种情况。只是我的 Android WebView
。网页上没有任何 javascript 会导致这种情况。我只是在输入密码。
这是 Android 5.0.2 和 5.1。在使用 WebView
.
以下是我启动 StoreWebActivity 的方式:
Intent intent=new Intent(StoreUrlActivity.this, StoreWebActivity.class);
intent.putExtra("storeUrl", savedStoreUrl);
startActivity(intent);
这是我在 onCreate
中为 activity 所做的:
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 studio 显示了 web 视图
这与创建键盘的 SocketScan 蓝牙条码扫描器有关。使用此键盘时,此问题会在 WebView 中发生。我不确定此时其他自定义键盘是否会发生这种情况。
感谢您提供有关此问题的如此完整的信息。我能够在 Android 5.1 和 6.0 上重现它。它似乎是由为网络表单中的密码字段启用预测引起的。 修复已在 v10.2.1 中发布,可在 Google Play 商店中获取。
Google 在 SDK 11 中为 Web 表单密码添加了单独的输入类型,所以我很惊讶我们现在只看到这个问题。 Chromium 最近一定发生了一些变化,因为恢复到 Android System WebView 版本 44.0.2403.117 或更早版本似乎也解决了这个问题。