我正在使用 webview 来显示打印预览,问题是有时 webview 不显示。发生这种情况时,不会调用 onPageFinished() 回调。我觉得奇怪的是它在大多数时候都有效,但有时却无效。
WebView webView = new WebView(context);
webView.loadData(html,
"text/html", "UTF-8");
webView.setWebViewClient(new WebViewClient() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view,url);
Log.d(TAG, "onPageFinished: ");
PrintDocumentAdapter printDocumentAdapter = new PrintDocumentAdapterWrapper(view.createPrintDocumentAdapter());
printManager = (PrintManager) context.getSystemService(PRINT_SERVICE);
printManager.print(webViewName, printDocumentAdapter, printAttributes);
}
});
最佳答案
我通过使用 webView.loadDataWithBaseURL(null,html, "text/html", "UTF-8",null);
而不是 webView.loadData(html, "text/html", "UTF-8");
.
据我了解,这两种方法的实现完全不同
关于android - onPageFinished 有时不调用 Android WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501866/