android - onPageFinished 有时不调用 Android WebView

标签 android printing webview

我正在使用 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/

相关文章:

android - 如何将应用程序设置为仅纵向?

android - 隐藏的 IFrame 禁止在 Android 浏览器上滚动

javascript - Android - Webview(kitkat 及以下): Error In Java Script Function 'includes'

ios - iOS 11.3(和 11.4)中的 UIWebView 崩溃

android - 如何在 Webview 中嵌入视频 View ?

android - 是否可以确定 Android 设备是插入计算机还是仅插入电源?

java - frida 调用了错误的构造函数

java - 平均字长

python - 如何使用 for 循环打印三角形

silverlight - 在没有打印对话框的 Silverlight 4 中进行打印 - 脱离浏览器并提高信任度