Я пытаюсь загрузить pdf URL в веб-просмотр, но иногда URL загружается идеально или иногда отображает белую страницу он отображает белую страницу, потому что напрямую вызывает метод onPageFinished
. Я пытаюсь с логином onReceivedSslError
, onReceivedHttpError
, но при загрузке белого экрана он вызывает метод onPageFinished
напрямую. Как я могу каждый раз загружать свой PDF-файл, используя URL-адрес?
мой код: -
url = getIntent().getStringExtra("url");
fileName = getIntent().getStringExtra("name");
try {
masterURL = "https://drive.google.com/viewerng/viewer?embedded=true&url=" + URLEncoder.encode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
requireNonNull(getSupportActionBar()).setTitle(fileName + " Report");
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
settings.setAppCacheEnabled(true);
settings.setDomStorageEnabled(true);
settings.setLoadsImagesAutomatically(true);
settings.setDatabaseEnabled(true);
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
//webview.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
//webview.invalidate();
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(TestPDFActivity.this, errorCode, Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
}
@Override
public void onPageFinished(WebView view, String url) {
progressDialog.dismiss();
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@Override
public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
super.onReceivedHttpError(view, request, errorResponse);
}
});
webview.loadUrl(masterURL);