我使用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);
}
});
答案 0 :(得分:2)
我使用webView.loadDataWithBaseURL(null,html, "text/html", "UTF-8",null);
代替webView.loadData(html, "text/html", "UTF-8");
解决了这个问题
从我读到的两个方法有一个完全不同的实现