2015-12-15 38 views
3

我有一个简单的网页,有一个用户名和密码字段。如果我填写用户名和密码字段并使用键盘上的“GO”按钮,则数据会正确发送到服务器。Android 5.0.2网络视图密码字段没有发布密码实际输入

但是,如果我不使用键盘的GO按钮,并单击“登录”按钮的网页密码发送为******** e例如。似乎Android WebView有某种错误。

我想通过从服务器输出RAW发布数据来解决这个问题。

SEE:

Screenshot

这不会在Chrome发生在Android或iOS设备。只是我的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应用程序,带有一个web视图,使用android工作室,显示错误

https://github.com/blasto333/AndroidWebViewBug

+0

我已经在Android 5.1版本测试过您的示例应用程序,它工作正常。 https://www.dropbox.com/s/858web06723gzay/Screenshot%202015-12-16%2010.59.54.png?dl=0 https://www.dropbox.com/s/oa68kk86fbuh62g/Screenshot %202015-12-16%2011.00.16.png?dl = 0 如果您可以发布设备/仿真器信息,这将有所帮助。 –

+0

谢谢!当你说你尝试了不同的设备时,我试图弄清楚什么是不同的。当我使用SocketScan键盘/蓝牙扫描仪时,这是发生时的情况。如果我将键盘切换回常规键盘,则按预期工作。我永远不会认为这会造成问题。我会让公司知道这一点。 –

回答

2

感谢您提供有关此问题的完整信息。我能够在Android 5.1和6.0上重现它。它似乎是由Web表单中的密码字段启用了预测引起的。 修复已在Google Play商店中提供的v10.2.1中发布。

加入谷歌在SDK 11 Web表单密码的独立输入的类型,所以我很惊讶,我们现在才看到了这个问题。最近Chromium中的某些内容已经发生了变化,因为恢复到Android System WebView 44.0.2403.117或更早版本似乎也解决了这个问题。

+1

非常感谢。你们是我见过的最具响应能力的公司。 –

+0

确认版本10.2.1修复了此问题。 –

0

这涉及到创建一个键盘SocketScan蓝牙条码扫描仪。当使用这个键盘时,这个问题在WebViews中发生。我不确定此时是否会出现其他自定义键盘。