веб-просмотр становится пустым после двойного нажатия на поле пароля HTML-страницы на планшете Android - PullRequest
0 голосов
/ 26 августа 2011

Проблема: веб-просмотр становится пустым после двойного нажатия на поле пароля html-страницы на планшете Android. Просто введите имя пользователя и пароль на html-странице без проблем.

Проверено: планшет Samsung Galaxy (GT-P7510) и Motorola Xoom

фрагмент файла макета:

            <LinearLayout
                android:layout_width="@dimen/layout_xlarge_width"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:padding="20dip"
                android:orientation="vertical">
            <TextView 
                android:id="@+id/urlview"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/test"                 
            />
                <Spinner
                android:id="@+id/profile"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"                  
                />                       

        </LinearLayout>     

        <WebView 
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:visibility="gone"
        />
</LinearLayout>

Код для настройки веб-просмотра:

webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.clearCache(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
setUserAgent(getString(R.string.user_agent_suffix));

Другое:

Добавление поддержки увеличения при просмотре веб-страниц или настройка прослушивания касанием и фокусировкой не помогли.

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 января 2012

У меня были некоторые проблемы в приложении. Похоже, какая ошибка влияет на все планшеты Honeycomb.

Проблема исчезнет, ​​если вы включите аппаратное ускорение. Но WebView с аппаратным ускорением имеет проблемы с производительностью и прозрачностью.

У меня отлично работает программный рендеринг WebView на аппаратно ускоренном окне:

mWindow.setFlags(
    Window.LayoutParam.FLAG_HARDWARE_ACCELERATED,
    Window.LayoutParam.FLAG_HARDWARE_ACCELERATED);
...
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE);

PS: Конечно, вы также можете включить аппаратное ускорение для всего приложения в файле манифеста.

1 голос
/ 17 ноября 2011

У меня была та же проблема, и я подумал об использовании уродливого трюка HTML, имитируя ввод пароля с помощью ввода 2 текста:

<div style="position: relative;">
<input type="text" id="hiddenPwd" onkeyup="$('#fakePwd')[0].value = '*************'.substr(0, $('#hiddenPwd')[0].value.length);" /> 
<div style="position:absolute; top: 0; left: 0;"><input type="text" id="fakePwd" onfocus="$('#hiddenPwd')[0].focus();"/></div>
</div>

Хорошо работает, единственный недостаток в том, что курсор не показывает ...

...