2015-12-15 1 views
3

У меня есть простая веб-страница с полем имени пользователя и пароля. Если я заполню поле имени пользователя и пароля и использую кнопку «GO» на клавиатуре, данные правильно помещаются на сервер.Android 5.0.2 в поле просмотра веб-страниц не вводится пароль на самом деле

Но если я не использую кнопку GO на клавиатуре и не нажимаю кнопку «Войти» на веб-страницу, пароль отправляется, например, ********. Похоже, у Android WebView есть своего рода ошибка.

Я понял это, выведя данные RAW-сообщения с сервера.

SEE:

Screenshot

Это не происходит в Chrome на Android или IOS. Просто мой Android WebView. На веб-странице нет никакого javascript, который мог бы вызвать это. Я просто вводил пароль.

Это на Android 5.0.2 И 5.1. Это НЕ происходит на Android 4.3 в том же приложении, используя WebView.

Вот как я начинаю 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 студия, которая показывает ошибку

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 клавиатуру/bluetooth-сканер, это происходит, когда это происходит. Если я переключу клавиатуру на обычную клавиатуру, она работает так, как ожидалось.Я бы никогда не подумал, что это вызовет проблему. Я расскажу об этом компании. –

ответ

2

Благодарим за предоставление такой полной информации об этой проблеме. Я смог воспроизвести его как на Android 5.1, так и на 6.0. По-видимому, это вызвано тем, что прогнозы разрешены для полей пароля в веб-формах. Исправление было выпущено в версии 10.2.1, которое доступно в Google Play Store.

Google добавил отдельный тип ввода для паролей веб-форм в SDK 11, поэтому я удивлен, что мы видим эту проблему только сейчас. В Chromium недавно что-то изменилось, потому что исправление проблемы с Android System WebView версии 44.0.2403.117 или ранее, похоже, также устраняет проблему.

+1

Большое спасибо. Вы, ребята, самая отзывчивая компания, с которой я когда-либо встречался. –

+0

подтвердил, что версия 10.2.1 исправляет проблему. –

0

Это связано с SocketScan сканера штрих-кода Bluetooth, который создает клавиатуру. Когда эта клавиатура используется, эти проблемы возникают в WebViews. Я не уверен, что это происходит с другими пользовательскими клавиатурами в это время.