Android:无法从WebView打印/PDF html文档(版本:86.0.4240.75)

Android:无法从WebView打印/PDF html文档(版本:86.0.4240.75),android,pdf,printing,webview,Android,Pdf,Printing,Webview,错误消息:“抱歉,这不起作用。请重试。” 使用Android系统WebView(版本:86.0.4240.75)的最新更新,无法使用createPrintDocumentAdapter从我的html文档WebView生成pdf或打印。对于旧版本的Android系统Webview,它运行良好 请让我们知道是否有人对此有解决方案 我们的Cordova应用程序也遇到了同样的问题。我们为Cordova使用pdf generator 2.1.1。Pdf可以在应用程序启动后第一次加载,如果它关闭并再次打开,

错误消息:“抱歉,这不起作用。请重试。”

使用Android系统WebView(版本:86.0.4240.75)的最新更新,无法使用createPrintDocumentAdapter从我的html文档WebView生成pdf或打印。对于旧版本的Android系统Webview,它运行良好

请让我们知道是否有人对此有解决方案


我们的Cordova应用程序也遇到了同样的问题。我们为Cordova使用pdf generator 2.1.1。Pdf可以在应用程序启动后第一次加载,如果它关闭并再次打开,我们会得到相同的错误。 如果我完全关闭应用程序并重新启动它,我可以再次打开它一次。可能是webview中的缓存问题或类似问题

我想唯一的解决办法是对webview进行新的更新,从而解决这个问题。
当我试图将gmail应用程序中的电子邮件保存为pdf格式时,有时也会出现此错误。

我不确定它是否适用于所有人,我在我的移动应用程序中也遇到了此问题,我所做的是:

  • 转到设置并选择应用
  • 选择应用程序,然后选择“从更多中显示系统进程”选项
  • 搜索Android系统WebView
  • 禁用它,然后再次启用它 我不知道为什么它会以某种方式降低web视图的版本,在这之后,我发现我的打印功能现在可以工作了,你可以试试

  • 此问题已在最新版本的Chrome/Android系统WebView应用程序上修复。 谷歌已经发布了Playstore的更新,我们确认这个问题已经解决


    跟踪问题

    我们做了与解决方法相同的事情。但几天前,我们也对chromium web团队提出了同样的问题。我们在应用程序中也看到了同样的失败。然而,在我们的应用程序中,我们提供了一个通过应用程序打印的解决方案,我们将创建的HTML传递给Google Chrome进行打印,并通过Javascript打开打印窗口。Google Chrome甚至可以使用更新的webview进行打印。想知道Chrome是怎么做的,因为打印控件看起来很像。
    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
    
    // Get a print adapter instance
    PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();
    
    // Create a print job with name and adapter instance
    String jobName = getString(R.string.app_name) + " Document";
    PrintAttributes.Builder builder = new PrintAttributes.Builder();
    builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4);
    PrintJob printJob = printManager.print(jobName, printAdapter, builder.build());