我已经实现了以下calendar在我的 Android 应用程序的 WebView 中。 当我专门按下“月”按钮时,WebView 会卡住,并且所有 WebView(在其他 Activity 中)都会停止加载。
我注意到这种情况只发生在特定的设备上。例如:小米2A精简版(Android 9)。
我已经直接调试了网站,它没有抛出任何(相关)错误。
我还使用 chrome://inspect/#devices 调试了 WebView,也没有错误。
所以我想这不是网站的问题。 我还使用了 Android Profiler,发现应用程序仍在检测 WebView 中的点击事件,但它仍然卡住。
也使用Logcat进行了调试,但似乎没有任何相关日志。
我之前已经实现了许多 WebView,没有任何问题,正如我提到的,这只会发生在特定设备上
web_calificaciones.getSettings().setJavaScriptEnabled(true);
web_calificaciones.setFocusable(true);
web_calificaciones.setFocusableInTouchMode(true);
web_calificaciones.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
web_calificaciones.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
web_calificaciones.getSettings().setDomStorageEnabled(true);
web_calificaciones.getSettings().setDatabaseEnabled(true);
web_calificaciones.getSettings().setAppCacheEnabled(true);
web_calificaciones.getSettings().setUseWideViewPort(true);
web_calificaciones.getSettings().setEnableSmoothTransition(true);
web_calificaciones.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
web_calificaciones.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
web_calificaciones.loadUrl(urlToLoad);
web_calificaciones.setWebViewClient(new CalendarActivity.myWebclient());
web_calificaciones.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView view, int progress){
if(progress==100){
progressbar_calificaciones.setVisibility(View.GONE);
container_progress.setVisibility(View.GONE);
}
super.onProgressChanged(view, progress);
}
});
web_calificaciones.setVerticalScrollBarEnabled(false);
不知道是内存问题还是版本问题。
最佳答案
我会尝试不将 setRenderPriority 设置为 HIGH。应始终仔细考虑将优先级设置为高。我认为压延机不需要那种特定的设置。此外,setEnableSmoothTransition 仅应在确实需要时使用。尝试将这些注释掉,我很高兴听到这是否有帮助!
关于java - 单击网站按钮时 Android WebView 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57136417/