2017-04-19 63 views
0

我使用webview来显示打印预览,问题是有时webview不显示。发生这种情况时,不会调用onPageFinished()回调函数。我觉得奇怪的是,它大部分时间都适用,但有时并不适用。onPageFinished有时不叫Android Android WebView

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); 

     } 

    }); 

回答

1

我用webView.loadDataWithBaseURL(null,html, "text/html", "UTF-8",null);代替webView.loadData(html, "text/html", "UTF-8");解决了这个。
从我看过的两种方法有完全不同的实现