Я использую Android WebView
для просмотра локального HTML
файла.Этот HTML
файл содержит около 500 текстовых полей, и когда я пытаюсь что-то ввести в текстовое поле, он не может автоматически отображать символ.Это было показано поздно и очень медленно.
Я использую следующий код:
WebView webview = (WebView) this.findViewById(R.id.appWebView);
webview.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
//webview.clearHistory();
//webview.clearFormData();
//webview.clearCache(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setVerticalScrollBarEnabled(false);
webview.setHorizontalScrollBarEnabled(false);
// disable scroll on touch
webview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(!AppView.this.origin.equalsIgnoreCase("termsofuse")){
return (event.getAction() == MotionEvent.ACTION_MOVE);
}
return false;
}
});
WebSettings webSettings = webview.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setPluginsEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setRenderPriority(RenderPriority.HIGH);
final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
/*
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 1000);
}
*/
});
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageStarted(WebView view, String url,Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
if(AppView.this.bgHeigth.equalsIgnoreCase("470px")){
view.setInitialScale(155);
}else{ //420px
view.setInitialScale(126);
}
}
});
webview.loadUrl( "file:///" + Environment.getExternalStorageDirectory() + "/Some/Directory/main.html" );
Есть идеи, как решить эту проблему?