Code for loading WebView. Screen appear white when loading on KitKat device.I used WebChromeClient in which override onProgressChanged() method.I used the following code.It works well on other devices greater than KitKat. Is there any solution for that.I read android developers doc but didn't get.Thanks.This is url private String url="https://xxxx.com/";
private void initWebview()
{
//Timer myTimer = new Timer();
//Start this timer when you create you task
//myTimer.schedule(new loaderTask(), 3000,1); // 3000 is delay in millies
//webView.setWebChromeClient(new MyWebChromeClient(this));
webView.setWebChromeClient(new MyWebChromeClient(this) {
@Override
public void onPermissionRequest(final PermissionRequest request) {
//super.onPermissionRequest(request);
runOnUiThread(new Runnable() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void run() {
if (request.getOrigin().toString().equals(url))
{
request.grant(request.getResources());
}else
{
request.deny();
}
}
});
}
}
);
webView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Log.i(TAG, "GOT Page error : code : " + errorCode + " Desc : " + description);
showError(OpenWebAppActivity.this, errorCode);
//TODO We can show customized HTML page when page not found/ or server not found error.
super.onReceivedError(view, errorCode, description, failingUrl);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
isPageLoadedComplete = true;
timeout=false;
progressBar.setVisibility(View.GONE);
}
});
}
개인 클래스 MyWebChromeClient이 WebChromeClient { 컨텍스트 컨텍스트 확장합니다.;아이콘 (eg.Menu 아이콘)
public MyWebChromeClient(Context context) {
this.context = context;
timeout=true;
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
getWindow().setTitle(title);
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
AlertDialog dialog = new AlertDialog.Builder(view.getContext()).
setMessage(message).
setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do nothing
}
}).create();
dialog.show();
result.confirm();
return true;
}
WebView로드 코드. 화면 KitKat 장치에로드 할 때 흰색 나타납니다. 나는 onProgressChanged() 메서드를 재정의하는 WebChromeClient를 사용합니다. 다음 코드를 사용합니다. 그것은 KitKat보다 큰 다른 장치에서 잘 작동합니다. 그것에 대한 해결책이 있습니까? 나는 안드로이드 개발자 문서를 읽었지만 얻지 못했습니다. 고맙습니다. 첫째
당신은 어떤 노력을 보여줄 필요가있다. 실패한 현재 코드를 보여주고, 시도한 것을 설명하고, 멈추는 위치를 정확히 설명하십시오. 귀하가 작성한 것을 읽음으로써 우리는 어떤 언어를 코딩하고 있는지 알지 못합니다 ... –
어떤 해결책을 바랍니다 –
webChromeClient를 사용하지만 WebView가 아닌 Chrome 창에서 열 수 있습니다. 장치가 if-else 조건을 사용했습니다. 적은 킷캣은 다음 WebChromeClient –