【发布时间】:2020-07-21 19:15:15
【问题描述】:
我尝试将 pdf URL 加载到 webview 中,但有时 URL 加载完美或有时显示白页。它显示一个白页,因为它直接调用onPageFinished 方法。我尝试登录onReceivedSslError,onReceivedHttpError,但是当加载白屏时它直接调用onPageFinished方法。如何每次使用 URL 加载我的 pdf?
我的代码是:-
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);
【问题讨论】:
-
您是否在
Manifest文件中声明了internet和access network state权限 -
@NensiKasundra 是的,我在清单中添加了
-
你检查上面的链接吗
-
不工作@NensiKasundra