2015-12-15 69 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中發生。我不確定此時是否會出現其他自定義鍵盤。